选择Matplotlib xticks的频率

11

我正在使用字符串作为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)
1个回答

16

你已经接近成功了!以所需的频率示例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])

绘图


谢谢回答。我宁愿只给出一个点号数字,而不是必须指定目标字母,这样该方法就可以用于大量标签。我目前正在努力理解您提到的重复帖子。 - michltm
据我理解,这并不是一个重复的问题,因为在那篇帖子中,他们使用了一个数字数组作为刻度,而我处理的是字符串。 - michltm
我现在理解你的问题了。请查看更新后的答案。 - rafaelvalle
如果我想勾选特定的字母怎么办? - weefwefwqg3
将变量my_xticks更改为您想要的字母表。 - rafaelvalle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接