如何在Seaborn relplot图表中添加DP Inlet均值参考线
Seaborn relplot添加DP Inlet均值参考线实现方法
注意你原有代码里sns.set()的位置不对,全局样式配置必须放在所有绘图代码之前才会生效,添加参考线的逻辑很简单,先计算目标字段均值,再在坐标轴上画水平参考线即可,具体操作如下:
- 前置调整:将
sns.set(font_scale=1)移动到绘图代码最开头 - 计算均值:直接用pandas原生的
mean()方法计算DP Inlet列的全局平均值 - 绘制参考线:relplot返回的是FacetGrid对象,取到对应的坐标轴实例后,调用
axhline()方法绘制水平参考线,可自行调整线的颜色、样式、粗细,还可以加文字标注说明均值数值
修改后的完整可运行代码:
import seaborn as sns import matplotlib.pyplot as plt # 全局配置必须放在绘图前 sns.set(font_scale=1) # 计算DP Inlet字段的全局均值 dp_inlet_mean = df["DP Inlet"].mean() # 原有relplot绘图逻辑 g = sns.relplot( x="TimeStamp", y="DP Inlet", hue="humidity", data=df ) g.set(title='DP inlet over time vs Temp') # 获取当前绘图的坐标轴对象 ax = g.axes[0, 0] # 绘制水平均值参考线 ax.axhline( y=dp_inlet_mean, color="#d62728", linestyle="--", linewidth=2, label=f"DP Inlet 均值:{dp_inlet_mean:.2f}" ) # 显示参考线对应的图例 ax.legend() # 原有画布尺寸设置 g.fig.set_figwidth(30.27) g.fig.set_figheight(20.7) plt.show()
可选调整:如果不需要展示参考线的说明文字,删掉
label参数和ax.legend()代码即可;如果需要按照humidity分组绘制每组对应的DP Inlet均值参考线,可以先按humidity字段分组计算均值,再循环调用axhline匹配对应分组颜色绘制即可。
内容的提问来源于stack exchange,提问作者Datascientist
相关产品推荐
相关产品推荐

