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

5 投票
2 回答
3114 浏览
提问于 2025-04-17 13:00

在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 个回答

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

在这里输入图片描述

撰写回答