如何突出显示boxp中的某些记录

2024-04-18 12:23:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有两列的df,一列带有id,另一列带有值

示例:

ID    value
x13   50
f24   24
s32   4
x75   199

目前,我制作箱线图的代码是:

import matplotlib
fig = plt.figure(1, figsize=(9, 6))
ax = fig.add_subplot(111)
bp = ax.boxplot(df["value"])
fig.savefig('fig1.png', bbox_inches='tight')

但是,我想突出显示boxplot中的某些记录,其中id列中的id以“x”开头。我不在乎突出显示是什么样子的,例如可以是点或线


Tags: 代码importid示例dfvaluefigax
1条回答
网友
1楼 · 发布于 2024-04-18 12:23:35

您可以创建一个掩码(使用here所示的方法)来查找IDx开头的行,然后使用它来绘制值,例如使用散点图,如下所示。这里[1]指的是在你的例子中所有点的x位置保持不变

ax = fig.add_subplot(111)
bp = ax.boxplot(df["value"])

mask = df.ID.str.startswith('x', na=False)
ax.scatter([1]*len(df[mask]['value']), df[mask]['value'], 
           marker='x', s=200, color='r')

enter image description here

相关问题 更多 >