精华内容
下载资源
问答
  • 1.刻度定位器与格式(Tick Locator) Tick locating 与 Tick formatting ...Matplotlib 中的 ticker 模块用于支持坐标轴刻度修改,调用下列命令可以初步查看主副坐标轴刻度的数值定位方式(locator)与具体格式(for...

    1.刻度定位器与格式(Tick Locator)

    Tick locating 与 Tick formatting 可参考官方文档:http://matplotlib.org/api/ticker_api.html

    2.获取坐标轴刻度对象

    • Matplotlib 中的 ticker 模块用于支持坐标轴刻度的修改,调用下列命令可以初步查看主副坐标轴刻度的数值定位方式(locator)与具体格式(formatter)等。
    • 详细命令参考:http://matplotlib.org/api/axis_api.html
    ax.xaxis.get_major_ticks()
    ax.xaxis.get_minor_ticks()
    ax.xaxis.get_major_locator()
    ax.xaxis.get_minor_locator()
    ax.xaxis.get_major_formatter()
    ax.xaxis.get_minor_formatter()
    

    3.设置主副刻度对象属性

    • (1)设置主副刻度格式
    import numpy as np
    import matplotlib.pyplot as plt
    from matplotlib.ticker import MultipleLocator, FormatStrFormatter
    
    t = np.arange(0.0, 100.0, 1)
    s = np.sin(0.1*np.pi*t)*np.exp(-t*0.01)
    ax = plt.subplot(111) #注意:一般都在ax中设置,不再plot中设置
    plt.plot(t,s,'--r*')
    
    #修改主刻度
    xmajorLocator = MultipleLocator(20) #将x主刻度标签设置为20的倍数
    xmajorFormatter = FormatStrFormatter('%5.1f') #设置x轴标签文本的格式
    ymajorLocator = MultipleLocator(0.5) #将y轴主刻度标签设置为0.5的倍数
    ymajorFormatter = FormatStrFormatter('%1.1f') #设置y轴标签文本的格式
    #设置主刻度标签的位置,标签文本的格式
    ax.xaxis.set_major_locator(xmajorLocator)
    ax.xaxis.set_major_formatter(xmajorFormatter)
    ax.yaxis.set_major_locator(ymajorLocator)
    ax.yaxis.set_major_formatter(ymajorFormatter)
    
    #修改次刻度
    xminorLocator = MultipleLocator(5) #将x轴次刻度标签设置为5的倍数
    yminorLocator = MultipleLocator(0.1) #将此y轴次刻度标签设置为0.1的倍数
    #设置次刻度标签的位置,没有标签文本格式
    ax.xaxis.set_minor_locator(xminorLocator)
    ax.yaxis.set_minor_locator(yminorLocator)
    
    #打开网格
    ax.xaxis.grid(True, which='major') #x坐标轴的网格使用主刻度
    ax.yaxis.grid(True, which='minor') #y坐标轴的网格使用次刻度
    plt.show()
    
    
    • (2)删除坐标轴的刻度显示
    ax.yaxis.set_major_locator(plt.NullLocator()) 
    ax.xaxis.set_major_formatter(plt.NullFormatter()) 
    

    作者:开码牛
    来源:CSDN
    原文:https://blog.csdn.net/helunqu2017/article/details/78736661
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • Matplotlib修改坐标轴刻度线的属性

    千次阅读 2019-09-24 16:01:44
    matplotlib中,刻度线叫tick,刻度值叫tick_label 注意这幅图片中就包含了关于刻度线的一些信息。比方,不仅有主刻度线(Major tick),还有次刻度线(Minor tick)。并且我们看到刻度线都是朝着图的外侧。图中,上边...

    在matplotlib中,刻度线叫tick,刻度值叫tick_label
    在这里插入图片描述
    注意这幅图片中就包含了关于刻度线的一些信息。比方,不仅有主刻度线(Major tick),还有次刻度线(Minor tick)。并且我们看到刻度线都是朝着图的外侧。图中,上边的和右边的坐标轴(Spine)并没有刻度线。

    是否显示次刻度线

    在pylab中内置了两个函数minorticks_on()minorticks_off()用来确定是否显示次刻度线。
    如下代码实现在左侧图中显示次刻度线,在右侧不显示次刻度线。在默认的情况下,不显示次刻度线。

    plt.subplot(121)
    plt.minorticks_on()
    plt.subplot(122)
    plt.minorticks_off()
    plt.show()
    

    在这里插入图片描述

    刻度线的朝向

    一般而言,我们希望刻度线朝外分布,这样避免影响图中的曲线和说明。但是有时候刻度线朝内分布,可以让图之间更加紧凑。在pylab中,利用tick_params控制刻度线的朝向,是朝图里,图外,还是都有。下面代码产生的图从左往右,分别显示朝里,朝外,两边都有的情况。

    plt.subplot(131)
    plt.tick_params(direction='in')
    
    plt.subplot(132)
    plt.tick_params(direction="out")
    
    plt.subplot(133)
    plt.tick_params(direction='inout')
    
    plt.show()
    

    在这里插入图片描述

    选择修改主刻度线还是次刻度线

    通过上面的例子可以看出,修改刻度线的主要函数就是tick_params。那么每次调用这个函数,是修改主刻度线、次刻度线,还是都改呢?这个由参数which控制。比方下面这段代码,分别让主刻度线朝里、次刻度线朝里、主次均朝里。最后一个图说明默认情况下,主次刻度线均朝外。

    plt.subplot(141)
    plt.minorticks_on()
    plt.tick_params(which='magor',direction='in')
    
    plt.subplot(142)
    plt.minorticks_on()
    plt.tick_params(which='minor',direction='in')
    
    plt.subplot(143)
    plt.minorticks_on()
    plt.tick_params(which='both',direction='in')
    
    plt.subplot(144)
    plt.minorticks_on()
    plt.text(0.5,0.5,'default')
    
    plt.show()
    

    在这里插入图片描述

    修改刻度线的长度和宽度

    如上图,如果觉得刻度线太短,太细,不太显眼,我们可以修改其长短、粗细。依然使用函数tick_params,通过参数widthlength控制。下面代码让左图的主刻度线粗一些,右图的次刻度线长一些。

    plt.subplot(121)
    plt.minorticks_on()
    plt.tick_params(which='major',width=4)
    
    plt.subplot(122)
    plt.minorticks_on()
    plt.tick_params(which='minor',length=10)
    
    plt.show()
    

    在这里插入图片描述

    在哪些轴上显示刻度线

    我们来看怎么控制刻度线出现在哪些轴上。这里用参数leftright,bottom,top`来控制,下面代码画出的图片,依次显示上下左右轴上的刻度线。(自己实验的,默认左边和下边是开启的 )

    plt.subplot(1,4,1)
    plt.tick_params(top=True,bottom=False,left=False,right=False)
    
    plt.subplot(1,4,2)
    plt.tick_params(top=False,bottom=True,left=False,right=False)
    
    plt.subplot(1,4,3)
    plt.tick_params(top=False,bottom=False,left=True,right=False)
    
    plt.subplot(1,4,4)
    plt.tick_params(top=False,bottom=False,left=False,right=True)
    
    plt.show()
    

    在这里插入图片描述

    在哪些轴上显示刻度值

    注意上面的图,刻度线分别出现在我们控制的坐标轴上,但是刻度值在默认情况下还是出现在左下两个轴上。这里仅说明如何让刻度值出现在相应刻度线的位置。比方,我们仅让上面的轴显示刻度线,也仅在该轴上显示刻度值,利用labelbottom, labeltop, labelleft, labelright四个参数控制,代码和图如下所示。

    plt.tick_params(top=True,bottom=False,left=False,right=False)
    plt.tick_params(labeltop=True,labelleft=False,labelright=False,labelbottom=False)
    

    在这里插入图片描述

    展开全文
  • ticklabels之间的间距仅由轴上的刻度之间的间距决定。因此,获得给定标签之间更多空间的唯一方法是使轴变大。为了确定标签不重叠所需的空间,可以找出最大的标签并将其长度乘以标签的数量。然后可以调整轴周围的边距...

    ticklabels之间的间距仅由轴上的刻度之间的间距决定。因此,获得给定标签之间更多空间的唯一方法是使轴变大。

    为了确定标签不重叠所需的空间,可以找出最大的标签并将其长度乘以标签的数量。然后可以调整轴周围的边距,并将计算出的尺寸设置为新的图形尺寸。import numpy as np

    import matplotlib.pyplot as plt

    N = 150

    data = np.linspace(0, N, N)

    plt.plot(data)

    plt.xticks(range(N)) # add loads of ticks

    plt.grid()

    plt.gca().margins(x=0)

    plt.gcf().canvas.draw()

    tl = plt.gca().get_xticklabels()

    maxsize = max([t.get_window_extent().width for t in tl])

    m = 0.2 # inch margin

    s = maxsize/plt.gcf().dpi*N+2*m

    margin = m/plt.gcf().get_size_inches()[0]

    plt.gcf().subplots_adjust(left=margin, right=1.-margin)

    plt.gcf().set_size_inches(s, plt.gcf().get_size_inches()[1])

    plt.savefig(__file__+".png")

    plt.show()

    请注意,如果绘图窗口中显示的图形大于屏幕,则它将再次缩小,因此调整大小的图形仅在保存时以其新大小显示。或者,您可以选择将其合并到一些带有滚动条的窗口中,如以下问题所示:Scrollbar on Matplotlib showing page

    展开全文
  • 我想:以5的间隔使用点网格每20个刻度盘上只能有一个主要刻度盘标签我想让滴答声超出情节范围。在这些网格中有“计数”我已经检查过潜在的重复项,比如here和here,但是我还没有弄清楚。这是我的密码。import ...

    我试着在网格化的图中绘制计数,但是我不知道该怎么做。我想:以5的间隔使用点网格

    每20个刻度盘上只能有一个主要刻度盘标签

    我想让滴答声超出情节范围。

    在这些网格中有“计数”

    我已经检查过潜在的重复项,比如here和here,但是我还没有弄清楚。

    这是我的密码。import matplotlib.pyplot as plt

    from matplotlib.ticker import MultipleLocator, FormatStrFormatter

    for key, value in sorted(data.items()):

    x = value[0][2]

    y = value[0][3]

    count = value[0][4]

    fig = plt.figure()

    ax = fig.add_subplot(111)

    ax.annotate(count, xy = (x, y), size = 5)

    # Overwrites and I only get the last data point

    plt.close()

    # Without this, I get "fail to allocate bitmap" error

    plt.suptitle('Number of counts', fontsize = 12)

    ax.set_xlabel('x')

    ax.set_ylabel('y')

    plt.axes().set_aspect('equal')

    plt.axis([0, 1000, 0, 1000])

    # This gives an interval of 200

    majorLocator = MultipleLocator(20)

    majorFormatter = FormatStrFormatter('%d')

    minorLocator = MultipleLocator(5)

    # I want minor grid to be 5 and major grid to be 20

    plt.grid()

    filename = 'C:\Users\Owl\Desktop\Plot.png'

    plt.savefig(filename, dpi = 150)

    plt.close()

    这就是我得到的。

    我也有一个覆盖数据点的问题,我也有麻烦。。。有人能帮我解决这个问题吗?

    展开全文
  • 本节主要讲述如何对坐标轴的刻度字体大小以及背景色进行修改。 例如: import numpy as np import pandas as pd import matplotlib.pyplot as plt # 生成x轴上的数据:从-3到3,总共有50个点 x = np.linspace(-3, 3,...
  • 查询pyplot 文档, 发现了 xtick() 函数可以修改刻度。 代码如下: import matplotlib.pyplot as plt import numpy as np #val_ls = [np.random.randint(100) + i*20 for i in range(7)] scale_ls = range(7) ...
  • 工作中偶尔需要做客流分析,用pyplot 库绘图。...查询pyplot 文档, 发现了 xtick() 函数可以修改刻度。 代码如下: import matplotlib.pyplot as plt import numpy as np #val_ls = [np.random.r
  • 坐标轴刻度 import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np plt.style.use('seaborn-whitegrid') %matplotlib inline fig=mpl.figure.Figure() ax=plt.axes() ax.plot(np.random....
  • 对Python matplotlib 的使用进行了总结,学习内容来自B站up主莫烦Python,推荐!!! 代码: import matplotlib.pyplot as plt import numpy as np # 最简单的画图 x = np.linspace(-1, 1, 50) y = 2*x + 1 plt...
  • 坐标轴刻度 import matplotlib.pyplot as plt import numpy as np x=np.arange(1,11,1) plt.plot(x,x) ax = plt.gca() #ax.locator_params(nbins=5) #xy轴同时调整 ax.locator_params('x',nbins=10) #只调整x轴 ...
  • 工作中偶尔需要做客流分析,用pyplot 库...查询pyplot 文档, 发现了 xtick() 函数可以修改刻度。 代码如下: import matplotlib.pyplot as pltimport numpy as np#val_ls = [np.random.randint(100) + i*20 for ...
  • 修改X,Y,Z轴的刻度值from matplotlib.ticker import MultipleLocator,FuncFormatterfrom mpl_toolkits.mplot3d import Axes3Dimport matplotlib.pyplot as pltfrom matplotlib import cmfrom matplotlib import ...

空空如也

空空如也

1 2 3 4 5 6
收藏数 116
精华内容 46
关键字:

matplotlib修改刻度