Pandas绘制柱状图时x轴标签旋转90度后超出图框问题
解决Pandas柱状图日期标签超出图框的问题
旋转90度后的日期标签被图框截断,核心原因是图表底部预留空间不足,以下是几种简单有效的解决办法:
方法一:保存图片时自动适配边界
在savefig中添加bbox_inches='tight'参数,让程序自动调整图表边界,确保所有元素(包括旋转后的标签)都能完整显示:
import pandas as pd df = pd.DataFrame() df['Date'] = pd.Series(['2023-01-01', '2023-01-02' ,'2023-01-03']) df['# total dictated'] = pd.Series([45, 32, 22]) ax = df.plot.bar(x='Date', y='# total dictated', rot=90, title='Total dictations per day', legend=False, fontsize=10, xlabel='') ax.figure.savefig('volume.png', bbox_inches='tight')
方法二:自动调整布局
调用tight_layout()让图表自动优化子图间距,避免标签被截断:
import pandas as pd df = pd.DataFrame() df['Date'] = pd.Series(['2023-01-01', '2023-01-02' ,'2023-01-03']) df['# total dictated'] = pd.Series([45, 32, 22]) ax = df.plot.bar(x='Date', y='# total dictated', rot=90, title='Total dictations per day', legend=False, fontsize=10, xlabel='') ax.figure.tight_layout() ax.figure.savefig('volume.png')
方法三:手动调整底部间距(精细控制)
如果需要自定义预留空间,可以导入matplotlib手动设置底部间距,数值可根据标签长度调整:
import pandas as pd import matplotlib.pyplot as plt df = pd.DataFrame() df['Date'] = pd.Series(['2023-01-01', '2023-01-02' ,'2023-01-03']) df['# total dictated'] = pd.Series([45, 32, 22]) ax = df.plot.bar(x='Date', y='# total dictated', rot=90, title='Total dictations per day', legend=False, fontsize=10, xlabel='') plt.subplots_adjust(bottom=0.2) # 底部预留20%的空间,按需修改数值 ax.figure.savefig('volume.png')
内容的提问来源于stack exchange,提问作者Anibal Jodorcovsky
相关产品推荐
相关产品推荐

