我绘制了一个如下的计数图:
ax, fig = plt.subplots()
sns.countplot(user_id_count[:100])
(array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14, 15、16 17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40]),)
但是我想将xticks更改为仅显示10, 20, 30, 40
这4个数字,因此我检查了文档并重新编码为:
ax, fig = plt.subplots()
sns.countplot(user_id_count[:100])
plt.xticks(range(10, 41, 10))
但是xticks不是我想要的。
我已经搜索了相关问题,但没有得到我想要的。
因此,如果没有介意,谁能帮助我?
答案 0 :(得分:1)
一种方法是在x轴上定义标签。 set_xticklabels
模块中的matplotlib
方法完成了(doc)的工作。
通过定义自己的标签,可以通过将标签设置为''
来隐藏它们。
通过定义自己的标签,您要小心,使它们仍与您的数据保持一致。
这里是一个例子:
# import modules
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
#Init seaborn
sns.set()
# Your data to count
y = np.random.randint(0,41,1000)
# Create the new x-axis labels
x_labels = ['' if i%10 != 0 else str(i) for i in range(len(np.unique(y)))]
print(x_labels)
# ['0', '', '', '', '', '', '', '', '', '',
# '10', '', '', '', '', '', '', '', '', '',
# '20', '', '', '', '', '', '', '', '', '',
# '30', '', '', '', '', '', '', '', '', '', '40']
# Create plot
fig, ax = plt.subplots()
sns.countplot(y)
# Set the new x axis labels
ax.set_xticklabels(x_labels)
# Show graph
plt.show()