我试图简单地绘制一个numpy数组,但遇到了麻烦,尤其是在x轴上获取刻度和标签的数量时。

我正在处理一个名为percents的数组,如下所示:

percents:

-74    0.000041
-61    0.000041
-60    0.000041
-59    0.000041
-57    0.000041
...
 71    0.000041
 73    0.000041
 75    0.000041
 77    0.000041
 80    0.000081


索引的范围是-74到80,值本身是从0到70的高位(发生在接近零的索引周围)。

当我仅使用Seaborn条形图绘制该数组时,我在x轴上遇到了噩梦。

categ = percents.index.tolist()
vals = percents.values.tolist()

fig = plt.figure(figsize = (8,6))
ax = fig.add_subplot(111)

sns.barplot(categ, vals)


python - Matplotlib X轴过度拥挤的标签渲染-LMLPHP

想或许使用xticks来解决这个问题,我尝试添加以下代码,实际上使情况变得更糟:

plt.xticks(np.arange(-80,80,10), np.arange(-80,80,10))


python - Matplotlib X轴过度拥挤的标签渲染-LMLPHP

我怎样才能解决这个问题?

最佳答案

似乎Seaborn的轴有所不同。如果改为调用plt.bar(),则您的解决方案有效。它看起来不是基于数据范围(即-80到80),而是从0到160。
这对我有用(带有Seaborn情节):

plt.xticks(np.arange(0, 160, 10), np.arange(-80, 80, 10))

07-24 09:45
查看更多