如何在对数图中的n位选择刻度?

时间:2012-02-14 10:37:55

标签: python matplotlib

在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()

Figure

2 个答案:

答案 0 :(得分:5)

在最新版本的matplotlib(1.2.0)中,获得更类似MaxNLocator的内容 您还可以使用@unutbu的解决方案

ax.xaxis.set_major_locator(ticker.LogLocator(numticks=6))

答案 1 :(得分:4)

对于每个轴,您可以设置LogLocator

from matplotlib import ticker
ax.xaxis.set_major_locator(ticker.LogLocator(base = 1000.0))

enter image description here