Seabornでfactorplot(kind="bar")
を使用しています。
凡例の配置が間違っている場合を除き、プロットは問題ありません。右に書きすぎると、テキストがプロットの網掛け領域から出てしまいます。
シーボーンが伝説をどこか別の場所、たとえば右中ではなく左上に配置するにはどうすればよいですか?
@ user308827の答えに基づいて:legend=False
factorplotで、matplotlibを使用して凡例を指定します。
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="whitegrid")
titanic = sns.load_dataset("titanic")
g = sns.factorplot("class", "survived", "sex",
data=titanic, kind="bar",
size=6, palette="muted",
legend=False)
g.despine(left=True)
plt.legend(loc='upper left')
g.set_ylabels("survival probability")
サンプルの変更 here :
legend_out = False
を使用できます
import seaborn as sns
sns.set(style="whitegrid")
titanic = sns.load_dataset("titanic")
g = sns.factorplot("class", "survived", "sex",
data=titanic, kind="bar",
size=6, palette="muted",
legend_out=False)
g.despine(left=True)
g.set_ylabels("survival probability")
こちらのドキュメントをご覧ください: https://matplotlib.org/users/legend_guide.html#legend-location
これを追加するだけで、プロットから凡例を引き出すことができます。
plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
これにより、凡例をプロット内の特定の場所に移動し、プロットのアスペクトとサイズを変更できました。
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
matplotlib.style.use('ggplot')
import seaborn as sns
sns.set(style="ticks")
figure_name = 'rater_violinplot.png'
figure_output_path = output_path + figure_name
viol_plot = sns.factorplot(x="Rater",
y="Confidence",
hue="Event Type",
data=combo_df,
palette="colorblind",
kind='violin',
size = 10,
aspect = 1.5,
legend=False)
viol_plot.ax.legend(loc=2)
viol_plot.fig.savefig(figure_output_path)
これにより、プロットのサイズとアスペクトを変更したり、プロットエリア外に凡例を移動したりすることができました。
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
matplotlib.style.use('ggplot')
import seaborn as sns
sns.set(style="ticks")
figure_name = 'rater_violinplot.png'
figure_output_path = output_path + figure_name
viol_plot = sns.factorplot(x="Rater",
y="Confidence",
hue="Event Type",
data=combo_df,
palette="colorblind",
kind='violin',
size = 10,
aspect = 1.5,
legend_out=True)
viol_plot.fig.savefig(figure_output_path)