我使用字符串将数据绘制为x标签。我想控制标签的频率,以避免文本过载。在下面的示例中,我希望每3个滴答只看到一个标签: a-d-g-j。

我可以这样做的一种方法是将my_xticks元素替换为每n个元素2个空字符串。但我确信它提供了一种更简洁的方法。
代码如下:
import numpy as np
import matplotlib.pyplot as plt
y=np.array([4,4,4,5,5,6,5,5,4,4,4])
x = np.arange(y.shape[0])
my_xticks=['a','b','c','d','e','f','g','h','i','j','k']
plt.xticks(x, my_xticks)
plt.plot(x, y)发布于 2017-01-12 03:24:30
你就快到了!以期望的频率对xticks的第一个和第二个参数进行采样!
该问题与Changing the "tick frequency" on x or y axis in matplotlib?中的问题相同
import numpy as np
import matplotlib.pyplot as plt
y = np.array([4,4,4,5,5,6,5,5,4,4,4])
x = np.arange(y.shape[0])
my_xticks = np.array(['a','b','c','d','e','f','g','h','i','j','k'])
frequency = 3
plt.plot(x, y)
plt.xticks(x[::frequency], my_xticks[::frequency])

https://stackoverflow.com/questions/41598935
复制相似问题