【发布时间】:2018-05-28 14:00:53
【问题描述】:
我已经使用 pandas 数据框创建了一个箱线图,现在我想在同一个图中用“X”标记特定值(希望是红色的!)。
一些数据:
df = pd.DataFrame(
[
[2, 4, 5, 6, 1],
[4, 5, 6, 7, 2],
[5, 4, 5, 5, 1],
[10, 4, 7, 8, 2],
[9, 3, 4, 6, 2],
[3, 3, 4, 4, 1]
], columns=['a1', 'a2', 'a3', 'a4', 'b'])
mark_values = pd.DataFrame(
[
[2,1],
[8.25,2]
], columns=['a1', 'b'])
df_long = pd.melt(df, "b", var_name="a", value_name="c")
g = sns.boxplot(x='c', y='a', hue='b', data=df_long,
palette=sns.color_palette("Blues_d"), orient='h')
sns.despine(left=True)
这会生成一个箱线图。我现在想将标记添加为红十字,例如将类别 a1、子组 1 标记为“4”处的 X,以及子组 2 标记为“8.25”处的 X 等等,但仍然保留我漂亮的箱线图。
应该按照上面定义的数据框mark_values 定义和存储要标记的值。如示例:
mark_values
Out[1]:
a1 b
0 4.00 1
1 8.25 2
有什么简单的解决办法吗?
谢谢
【问题讨论】:
标签: python pandas seaborn boxplot