为什么matplotlib绘制year列箱线图几乎为空,仅显示少量线条和点
问题原因
year列的数值均为2016、2017、2019这类千位级的大整数,且整体取值离散度极低,matplotlib默认会将y轴起始值设为0,导致箱线图的箱体、须线等元素全部被压缩到画布最顶部,视觉上就会出现几乎为空、只有少量线条和点的情况,y轴多余的线条是0到2000区间的空刻度线。
解决方案
- 方案1:手动调整y轴显示范围,聚焦到
year列的实际取值区间即可
import matplotlib.pyplot as plt my_data_frame.boxplot(column='year') # 按year的实际分布设置y轴上下限,各留1的余量避免箱体贴边 plt.ylim(my_data_frame['year'].min() - 1, my_data_frame['year'].max() + 1) plt.show()
- 方案2:先检查
year列是否存在异常极小值
如果调整y轴后还是显示异常,可以先运行以下代码查看year列的统计分布,确认是否存在0、1900这类偏离正常范围的异常值,清洗异常值后再绘图即可:
print(my_data_frame['year'].describe())
内容的提问来源于stack exchange,提问作者JacobMarlo
相关产品推荐
相关产品推荐

