Matplotlib中的多个网格
我正在用Python和matplotlib制作图表,觉得这个工具非常强大和灵活,直到现在为止都很满意。
不过,有一件事我找不到办法,就是如何让我的图表有多个网格线。我查阅了文档,但里面只讲了线条样式...
我想要的效果是像有两个图表,每个图表都有不同的网格线,并且这些网格线会重叠在一起。
举个例子,我想制作这样的图:
图示链接 http://img137.imageshack.us/img137/2017/waittimeprobability.png
希望它的网格标记类似于这个:
图示链接 http://img137.imageshack.us/img137/6122/saucelabssauceloadday.png
我的意思是,希望在重要的点之间有更频繁的网格线,并且颜色更浅。
1 个回答
33
这样怎么样呢?(这个内容是从这里改编过来的):
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()