私はpandasデータフレームを使用してボックスプロットを作成しましたが、今度は同じプロットの特定の値に "X"(うまくいけば赤い!パンダを使用してBoxplotの特定の値をマーク
一部のデータ:
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、サブグループにXを "4"、サブグループにXを "8.25"などでマーキングしても、わかりやすいボックスプロットを保持します。
上記のデータフレームmark_values
のように、マークする値を定義して保存する必要があります。例のように:
mark_values
Out[1]:
a1 b
0 4.00 1
1 8.25 2
簡単な解決方法はありますか? Seabornがmatplotlib
を使用して構築されているので
おかげ
はい、動作しますが、しかし、あなたはどこにに非常に特異的ではないだろうが、実際のマーカー... 'a3'にマーカーを入れたいとしたら、私のy値が何であるかを推測する必要があります。右? – gussilago
@gussilago、私の編集をチェックしてください。あなたは 'get_ylim()'で気になるかもしれません。例えば、「Y」値をカテゴリの数で除算して、グラフ上のスポットの推定値を得る。おそらくよりエレガントな方法がありますが、これは私のテストで大丈夫です。 – MattR