遍历ID绘制箱线图出现重叠问题的解决方法
解决箱线图重叠问题:按测量仪器分组绘制温度箱线图
问题还原
要给数据框df里每个唯一的ID_ESTACION(对应不同测量仪器)的TEMPAIRE_filt温度数据画箱线图,一开始用了这段循环代码:
for i in df['ID_ESTACION'].unique(): df_1 = df[df.ID_ESTACION==i] plt.boxplot(df_1['TEMPAIRE_filt'])
结果所有箱线图叠在了一起,根本没法区分不同仪器的数据。
重叠原因
这段循环的问题很直白:每次调用plt.boxplot()时,Matplotlib默认都会把箱线图绘制在x轴的同一个位置,没给每个分组的图分配独立的x坐标,自然就挤成一团了。
解决办法
直接用Pandas自带的boxplot()方法,通过by参数指定按ID_ESTACION分组,它会自动帮你把每个分组的箱线图放在单独的x轴位置上,完美避免重叠:
# 核心代码:按测量仪器ID分组绘制箱线图 df.boxplot(by="ID_ESTACION", column="TEMPAIRE_filt") # 可选:美化图表 plt.title("各测量仪器温度分布箱线图") plt.suptitle("") # 去掉Pandas自动生成的顶部标题 plt.xlabel("测量仪器ID") plt.ylabel("温度") plt.show()
内容的提问来源于stack exchange,提问作者Chubiblan
相关产品推荐
相关产品推荐

