2

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

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

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

W = 8
plt.figure(figsize=(W, 4))
plt.plot(x, y)
ax = plt.gca()
ax.set_xscale('log')
ax.set_yscale('log')
ax.xaxis.set_major_locator(mpl.ticker.LogLocator())

这工作正常。我在 X 轴上以 10 的每个幂得到刻度。

但是,如果我设置Nmax=7,我只会得到 10 的数次幂(即 0、100 等)的刻度。增加 W(例如W=20)并不重要——我会得到一个具有相同刻度的更大数字。

我尝试阅读LogLocator. 他们实际上并没有解释所有的输入参数。

4

1 回答 1

2

您可以再次设置 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()

在此处输入图像描述

于 2020-06-09T17:07:20.810 回答