代码之家  ›  专栏  ›  技术社区  ›  Santi

Matplotlib上的多个网格

  •  17
  • Santi  · 技术社区  · 15 年前

    我正在用python和matplotlib绘制一些图,直到现在我发现它们都是巨大且灵活的。

    唯一我找不到的方法就是让我的图有多个网格。 我已经研究了 documentation 但这只是为了线条风格…

    我在想两个图,每个图都有一个不同的网格,它们会重叠。

    例如,我想制作这个图表:

    Alt text http://img137.imageshack.us/img137/2017/waittimeprobability.png

    具有与此类似的网格标记:

    Alt text http://img137.imageshack.us/img137/6122/saucelabssauceloadday.png

    我的意思是,更频繁的网格,在重要点之间的颜色更浅。

    1 回复  |  直到 7 年前
        1
  •  32
  •   Mark    12 年前

    像这样的(改编自 here ):

    from pylab import *
    from matplotlib.ticker import MultipleLocator, FormatStrFormatter
    
    t = arange(0.0, 100.0, 0.1)
    s = sin(0.1*pi*t)*exp(-t*0.01)
    
    ax = subplot(111)
    plot(t,s)
    
    ax.xaxis.set_major_locator(MultipleLocator(20))
    ax.xaxis.set_major_formatter(FormatStrFormatter('%d'))
    ax.xaxis.set_minor_locator(MultipleLocator(5))
    
    ax.yaxis.set_major_locator(MultipleLocator(0.5))
    ax.yaxis.set_minor_locator(MultipleLocator(0.1))
    
    ax.xaxis.grid(True,'minor')
    ax.yaxis.grid(True,'minor')
    ax.xaxis.grid(True,'major',linewidth=2)
    ax.yaxis.grid(True,'major',linewidth=2)
    
    show()
    

    enter image description here