如何在箱线图中突出显示某些记录
How to highlight certain records in boxplot
我有一个包含两列的 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')
但是,我想在箱线图中突出显示 ID 列中的 id 以 "x" 开头的某些记录。我不在乎突出显示的样子,例如可以是点或线。
您可以创建一个掩码(使用 here 所示的方法)来查找 ID
以 x
开头的行,然后使用它来绘制值,例如,散点图如下所示。这里 [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')
我有一个包含两列的 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')
但是,我想在箱线图中突出显示 ID 列中的 id 以 "x" 开头的某些记录。我不在乎突出显示的样子,例如可以是点或线。
您可以创建一个掩码(使用 here 所示的方法)来查找 ID
以 x
开头的行,然后使用它来绘制值,例如,散点图如下所示。这里 [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')