Skip to main content
 首页 » 编程设计

python之Seaborn 箱线图水平线注释

2025年05月04日23kenshinobiy

我想添加一条水平线,即一些绘图的“目标”线:带状图、箱线图和 fiddle 图,以显示理想值数据(或理想情况下的范围)。

这个 R 示例 ( Add multiple horizontal lines in a boxplot ) - 第一个图像 - 基本上就是它(尽管我会做一些格式化以使其更像样)。

R abline() equivalent in Python对我没有帮助(或者我还没有弄清楚如何),因为我使用的是分类数据,所以我只想从本质上定义(例如)y=3 并绘制它。 我的代码(下面)工作正常,我只是不知道如何添加一行。

fig, ax = plt.subplots(nrows=4,figsize=(20,20)) 
 
sns.violinplot(x="Wafer", y="Means", hue='Feature',  
           data=Means[Means.Target == 1], ax=ax[0]) 
sns.violinplot(x="Wafer", y="Means", hue='Feature',  
           data=Means[Means.Target == 3], ax=ax[1]) 
sns.boxplot(x="Feature", y="Means",  
        data=Means, linewidth=0.8, ax=ax[2]) 
sns.stripplot(x="Feature", y="Means", hue='Wafer', 
          data=Means, palette="plasma", jitter=0.1, size=5.5, ax=ax[3]) 

非常感谢任何帮助。

请您参考如下方法:

假设您不想在高度 y 和从 x1 到 x2 处绘制一条水平线,其中 x1 和 x2 是您的实际 x 数据值。以下只是您可以执行此操作的几种可能方法中的三种:

首先:

ax.hlines(y, x1, x2) 

第二个:

plt.plot([x1, x2], [y, y]) 

第三个(x1 和 x2 现在在 0 表示最左边和 1 表示之间的相对/分数坐标中最右边):

ax.axhline(y, x1, x2)