选择matplotlib xticks频率

时间:2017-01-11 19:13:43

标签: python matplotlib

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

enter image description here

我能做到的一种方法是每n个元素用2个空字符串替换my_xticks元素。 但我确信它提供了一种更清洁的方法。

以下是代码:

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)

1 个答案:

答案 0 :(得分:6)

你快到了!以所需频率对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])

Plot