Xaxis 文本重叠 - Matplotlib [英] Xaxis text overlapping - Matplotlib

查看:78
本文介绍了Xaxis 文本重叠 - Matplotlib的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用 ma​​tplotlib 绘制条形图,一切正常.当 X 轴上的 文本标签" 对于每个数据点来说太长时,文本会重叠,如图所示.我还尝试将对齐方式旋转到 4590 度,但文本超出了框架.

I plot a bar graph using matplotlib and everything works fine. When the "text label" on X-axis is too lengthy for each data point, then the text overlaps like shown in the figure. I also tried to rotate the alignment to 45 and 90 degrees, but the text goes beyond the frame.

X = [1,2,3,4,5,6]
Y = [55,46,46,36,27,9]
point_labels =[50,38,25,6,6,6]
fig, axes = plt.subplots(1)
ax2 = axes
n=7
ind=np.arange(n)
width=0.1
axis_font = {'fontname':'Arial', 'size':'11'}
Color = ['0.1','0.2','0.3','0.4','0.5','0.6']

bar = ax2.bar(X,Y,align="center",width=0.5,color=Color)
bar[0].set_color('r')

plt.xticks(ind+width/2, ('','Insufficient skills','Complex hardware and software','High initial investments','Complexity in collection and storing data','Insufficient hardware power for computing','Data collaboration'),horizontalalignment='center')

plt.ylabel('in precentage (%)')

text(4.6,52, '100% = 11 responses', style='italic',bbox={'facecolor':'red', 'alpha':0.5, 'pad':10})

axes.yaxis.grid()
axes.set_ylim([0,60])

plt.show()

任何人都可以提出一个解决此问题的想法吗?

Can anyone suggest an idea to fix this?

推荐答案

我能想到的最好的办法是将旋转设置为垂直,以更改图形扩展名并运行 plt.tight_layout().这些将是您代码的最后 3 行:

The best I can come up with is set the rotation as vertical changing the figure extension and run a plt.tight_layout(). Those would be the last 3 lines of your code:

mngr = plt.get_current_fig_manager()
mngr.window.setGeometry(50,50,960, 640)
plt.tight_layout()

或者,您应该使用带有 \n 的多行.请参阅 http://matplotlib.org/examples/pylab_examples/multiline.html

Alternatively, you should use multi lines with \n. See http://matplotlib.org/examples/pylab_examples/multiline.html

这篇关于Xaxis 文本重叠 - Matplotlib的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆