如何使用pandas子图(subplots)并排展示饼图(pie chart)和柱状图(bar chart)
解决方案
问题根因
你创建1行2列的子图布局后,绘图时没有为两个图表分别指定对应的子图容器,matplotlib默认会将所有图表绘制到最后生成的子图上,因此出现了图表重叠的异常表现。
调整后代码
import matplotlib.pyplot as plt # 创建1行2列的子图,可通过figsize调整整体画布大小避免内容重叠 fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(12, 5)) # 提前计算好待绘制的统计数据,避免重复计算 count_data = df['column'].value_counts() # 饼图指定绘制到第一个子图ax[0],可按需添加显示参数 count_data.plot.pie( ax=ax[0], autopct='%1.1f%%', # 显示扇区百分比 ylabel='' # 去掉默认生成的列名标注,更美观 ) # 柱状图指定绘制到第二个子图ax[1] count_data.plot.bar( ax=ax[1], rot=0 # 让x轴标签水平展示,避免倾斜影响阅读 ) # 自动调整子图间距,避免标签、标题被截断 plt.tight_layout() plt.show()
你可以根据自己的需求调整figsize、autopct、rot等参数,适配实际的展示效果。
内容的提问来源于stack exchange,提问作者bigish
相关产品推荐
相关产品推荐

