我需要在每个刻度之间添加间距,使其不重叠。计算x刻度的当前代码是
x = np.arange(-10, 361, 10, dtype = int)
plt.xticks(x)
我还尝试使用以下代码添加空间:
x = np.arange(-10, 361, 10, dtype = int)
plt.xticks(x,['%i '%w for w in x])
但这只会增加第一个标签(-10)周围的间距,之后不会增加任何内容。 我不想减小字体大小,并希望另一种方法来避免重叠。
答案 0 :(得分:2)
一种选择是仅标记每个 n th 标记。您可以通过使用主要和次要刻度组合来实现此目的:
import numpy as np
from matplotlib import pyplot as plt
x = np.arange(-10, 361, 10, dtype = int)
y = np.sin(np.deg2rad(2*x))
fig, ax = plt.subplots(1, 1)
ax.plot(x, y)
ax.set_xticks(x, minor=True) # set minor ticks for each x value
ax.grid(which='both', axis='both') # show grid lines
plt.show()
@tcaswell 在评论中正确地指出,使用其中一个tick locator classes比直接设置刻度的位置更清晰。例如:
ax.xaxis.set_minor_locator(plt.MultipleLocator(10))
请注意,无论您如何平移或缩放绘图的轴,这都会自动放置跨越整个x轴的刻度线。