Python 为什么LogLocator每20年只给我一个刻度?

Python 为什么LogLocator每20年只给我一个刻度?,python,python-3.x,matplotlib,jupyter-notebook,xticks,Python,Python 3.x,Matplotlib,Jupyter Notebook,Xticks,首先是代码。我使用的是Jupyter Notebook 6.0.3(这可能很重要,也可能不重要) 这个很好用。我在X轴上得到每10次方的刻度 但是如果我设置Nmax=7,我只会在偶数幂为10(即0、100等)时得到刻度,增加W(例如W=20)无关紧要——我会得到一个具有相同刻度的更大数字 我试着阅读LogLocator的文档。它们实际上并没有解释所有的输入参数。您可以再次设置xtick,如下代码所示: import matplotlib as mpl import matplotlib.pypl

首先是代码。我使用的是Jupyter Notebook 6.0.3(这可能很重要,也可能不重要)

这个很好用。我在X轴上得到每10次方的刻度

但是如果我设置
Nmax=7
,我只会在偶数幂为10(即0、100等)时得到刻度,增加W(例如
W=20
)无关紧要——我会得到一个具有相同刻度的更大数字


我试着阅读
LogLocator
的文档。它们实际上并没有解释所有的输入参数。

您可以再次设置xtick,如下代码所示:

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

Nmax = 7
x = np.logspace(-1, Nmax)
y = 1/x + x

W = 8
fig, ax = plt.subplots(1, 1, figsize = (W, 4))
ax.loglog(x, y)

locmaj = mpl.ticker.LogLocator(numticks=12)
ax.xaxis.set_major_locator(locmaj)

plt.show()

我很困惑。将刻度设置为“日志”将自动使用日志定位器。不管有没有你的最后一行,我每十年都会收到一次滴答声。这是自动日志定位器的一个优点。我不太清楚为什么我把它放进去,但我还有一个次要的定位器。当主要定位器出现上述故障时,次要的滴答声就会完全消失。只需添加
numticks
arg即可。看起来它控制了定位器将定位的记号标记的最大数量。正如您所说的那样,您可以删除与基础和次要记号相关的外部材料吗?
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

Nmax = 7
x = np.logspace(-1, Nmax)
y = 1/x + x

W = 8
fig, ax = plt.subplots(1, 1, figsize = (W, 4))
ax.loglog(x, y)

locmaj = mpl.ticker.LogLocator(numticks=12)
ax.xaxis.set_major_locator(locmaj)

plt.show()