You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于独热编码季节列绘制实际值预测值箱线图及边框优化

解决方案

你可以通过调整seaborn.boxplot()的内置参数直接修改箱体样式、线宽和宽度,解决边框过粗、图表拥挤的问题:

方法1:直接调整全局线宽

通过linewidth参数统一缩小所有箱线元素(箱体边框、须线、中位数线)的粗细,同时可以搭配width参数缩小箱体宽度,留出更多间距:

import seaborn as sn
import matplotlib.pyplot as plt

# 原有数据处理代码
df['season'] = (df.iloc[:, 2:] == 1).idxmax(1)
df = df.melt(id_vars ='season', value_vars=['actuals', 'predicted'])

# 调整参数绘图
sn.boxplot(
    x='season', 
    y='value', 
    hue='variable', 
    data=df, 
    palette="Set3",
    linewidth=1,  # 缩小所有线条的粗细,默认值一般为1.5左右
    width=0.7  # 缩小箱体整体宽度,避免分组之间拥挤
)
plt.show()

方法2:自定义箱体边框样式

如果你想要完全去掉箱体的灰色边框,或者单独修改边框颜色/透明度,可以通过boxprops参数单独配置箱体属性:

sn.boxplot(
    x='season', 
    y='value', 
    hue='variable', 
    data=df, 
    palette="Set3",
    linewidth=1,
    width=0.7,
    # 自定义箱体属性:edgecolor设置边框颜色,设为none即隐藏边框,也可以设为"white"/"lightgray"等
    boxprops={"edgecolor": "none", "alpha": 0.9}  
)
plt.show()

额外优化建议

如果还是觉得图表拥挤,可以额外调整布局元素:

# 调整x轴标签旋转角度避免重叠
plt.xticks(rotation=0)
# 移动图例到图表外侧,避免遮挡箱体
plt.legend(bbox_to_anchor=(1.02, 1), loc='upper left')
# 自动调整布局,避免元素被截断
plt.tight_layout()

内容的提问来源于stack exchange,提问作者CG7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 17:12:03