web-dev-qa-db-ja.com

Seaborn barplotの凡例のタイトルを削除

https://seaborn.pydata.org/examples/factorplot_bars.html のようにseabornを使用してグループ化された棒グラフをプロットします

お願い: https://seaborn.pydata.org/_images/factorplot_bars.png

削除したい伝説のタイトル(性別)があります。

どうすればそれを達成できますか?

14
user113531

これはハッキングの解決策かもしれませんが、うまくいきます。プロット時にSeabornをオフにしてから追加し直すと、凡例のタイトルが表示されません。

g = sns.factorplot(x='Age Group',y='ED',hue='Became Member',col='Coverage Type',
                   col_wrap=3,data=gdf,kind='bar',ci=None,legend=False,palette='muted')
#                                                         ^^^^^^^^^^^^
plt.suptitle('ED Visit Rate per 1,000 Members per Year',size=16)
plt.legend(loc='best')
plt.subplots_adjust(top=.925)
plt.show()

結果の例:

enter image description here

9
bernie

それほどハッキングされていない方法は、matplotlibのオブジェクト指向インターフェースを使用することです。軸の制御を取得することにより、プロットのカスタマイズがはるかに簡単になります。

import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="whitegrid")

# Load the example Titanic dataset
titanic = sns.load_dataset("titanic")

# Draw a nested barplot to show survival for class and sex
fig, ax = plt.subplots()
g = sns.factorplot(x="class", y="survived", hue="sex", data=titanic,
                   size=6, kind="bar", palette="muted", ax=ax)
sns.despine(ax=ax, left=True)
ax.set_ylabel("survival probability")
l = ax.legend()
l.set_title('Whatever you want')
fig.show()

結果は resulting_plot

9
dillon

凡例のタイトルは次の方法で削除できます。

plt.gca().legend().set_title('')

5
1''

factorplotのデフォルトのように、凡例をプロット軸の外側に表示する場合は、FacetGrid.add_legendを使用できます(factorplotFacetGridインスタンスを返します) 。他の方法では、FacetGridのすべての軸のラベルを一度に調整できます

import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="whitegrid")

# Load the example Titanic dataset
titanic = sns.load_dataset("titanic")

# Draw a nested barplot to show survival for class and sex
g = sns.factorplot(x="class", y="survived", hue="sex", data=titanic,
                   size=6, kind="bar", palette="muted", legend=False)
(g.despine(left=True)
  .set_ylabels('survival probability')
  .add_legend(title='Whatever you want')
)
0
fredcallaway