2017-10-01 18 views
1

swarmプロット(海底)をボックスプロット上にプロットすると、ポイントはボックスプロットの中央線をカバーすることがあります。 スワンプロットのドットをもう少し透明にすることで、ボックスプロットのメジアンも確認できますか?Python:swarmプロットはボックスプロットのメジアンラインをカバーします

プロットでは、ドットで覆われているため中央線が表示されないため、光学的には2番目のボックスに中央値がどこにあるかわかりません。私は中央線も見えるように、スームプロットのポンをもっと透明にすることは可能ですか?

例:

fig, axes = plt.subplots(nrows=1, ncols=1,figsize=(6,2)) 
data = pd.DataFrame({'a':[3,3,3,3,4,5,6,8,11,11,8,7,7,7,7,7,7,3,3,3,3,3,7,7,7,7,7,7,7,7,7,7,7,8,9,10,11,12,11,11,11]}) 
sns.boxplot(x='a',data=data, ax = axes) 
ax = sns.swarmplot(x='a', data=data, color = 'grey', ax = axes) 

(大きな図を作ることはオプションではありません)

enter image description here

答えて

0

つのオプションは、私の心に直接来る:

  • を作りますスウォムプロット半透明。これは、alpha引数を追加することによって行うことができます。半透明の場合はalpha=0.5です。もちろん、背景のバーが暗いほど、目立たない点があります(したがって、ここでは黄色にしました)。

    enter image description here

  • import matplotlib.pyplot as plt import seaborn as sns import pandas as pd fig, axes = plt.subplots(figsize=(6,2)) data = pd.DataFrame({'a':[3,3,3,3,4,5,6,8,11,11,8,7,7,7,7,7,7,3,3, 3,3,3,7,7,7,7,7,7,7,7,7,7,7,8,9,10,11,12,11,11,11]}) sns.boxplot(x='a',data=data, ax = axes, color="gold") sns.swarmplot(x='a', data=data, color = 'grey', ax = axes, alpha=0.5) plt.show() 

    はswarmplotポイント
    の上に正中線を表示します。これは、medianpropsキーワード引数で渡された辞書を介して中央値線のzorderを指定することによって実行できます。 medianprops={"zorder":3, "alpha":0.6}を介して半透明の正中線を作るこの場合

    enter image description here

    sns.boxplot(x='a',data=data, ax = axes, color="gold", medianprops={"zorder":3}) 
    
    は、同様に可能です。

もちろん、2つのオプションの任意の組み合わせも同様に役立ちます。

関連する問題