Python Matplotlib x轴过度拥挤标签渲染

Python Matplotlib x轴过度拥挤标签渲染,python,arrays,numpy,matplotlib,seaborn,Python,Arrays,Numpy,Matplotlib,Seaborn,我试图简单地绘制一个numpy数组,但我遇到了麻烦,尤其是在x轴上获得正确的刻度和标签的数量 categ = percents.index.tolist() vals = percents.values.tolist() fig = plt.figure(figsize = (8,6)) ax = fig.add_subplot(111) sns.barplot(categ, vals) 我正在处理一个名为percents的数组,该数组如下所示: percents: -74 0.0

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

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

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

sns.barplot(categ, vals)
我正在处理一个名为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 barplots绘制这个阵列时,我在x轴上得到了一个噩梦

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

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

sns.barplot(categ, vals)

我想用
xticks
来解决这个问题,于是我尝试添加了这个代码,实际上这会让情况变得更糟:

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


我如何解决这个问题?

看来Seaborn的轴做得有点不同。如果改为调用plt.bar(),您的解决方案就会起作用。它看起来不是基于数据范围(即-80到80)来做,而是从0到160。 这对我来说很有用(有一个海生的情节):


我也会在这里使用
plt.bar
。将主定位器重置为和可能是仅次于使用
ax.bar
的第二个最佳解决方案。在引擎盖下
plt.xticks
将定位器和格式化程序都设置为固定的种类,这对交互性来说不是很好。它也让我有点害怕,让刻度从带有数字标签的数据空间单元中去耦合。