如何在对数图中选择n位置的刻度?
在matplotlib这个绘图库中,有时候在loglog
图上,主要的刻度线(也就是我们看到的数字标记)会挤得太近。我们可以选择手动调整这些刻度线的位置,但有没有什么方法可以像MaxNLocator
那样,自动在对数刻度上放置n个刻度呢?
import numpy as np
import pylab as p
x=np.logspace(1,20,10)
fig=p.figure()
ax1=fig.add_subplot(121)
ax1.loglog(x,x,'o')
ax2=fig.add_subplot(122)
ax2.loglog(x,x,'o')
fig.show()
2 个回答
6
在最新版本的matplotlib(1.2.0)中,如果你想要得到更像MaxNLocator
的效果,你也可以使用@unutbu的解决方案,具体代码如下:
ax.xaxis.set_major_locator(ticker.LogLocator(numticks=6))
4
对于每一个坐标轴,你可以设置一个叫做 LogLocator 的东西:
from matplotlib import ticker
ax.xaxis.set_major_locator(ticker.LogLocator(base = 1000.0))