如何将xticks更改为特定范围

时间:2019-06-22 06:34:44

标签: python matplotlib seaborn

我绘制了一个如下的计数图:

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]),)

enter image description here

但是我想将xticks更改为仅显示10, 20, 30, 40这4个数字,因此我检查了文档并重新编码为:

ax, fig = plt.subplots()
sns.countplot(user_id_count[:100])
plt.xticks(range(10, 41, 10))

enter image description here

但是xticks不是我想要的。
我已经搜索了相关问题,但没有得到我想要的。
因此,如果没有介意,谁能帮助我?

1 个答案:

答案 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()

enter image description here