シーボーンラインプロットの伝説からタイトルを削除したいと思います。私は この答え を使用してみました:
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
fmri = sns.load_dataset("fmri")
fig, ax = plt.subplots()
g = sns.lineplot(x="timepoint", y="signal", hue="event", data=fmri, ax=ax)
ax.legend().set_title('')
タイトルをNone
に設定しようとしても同じ結果になります。興味深いことに、タイトルを別のタイトルに設定すると、既存のタイトルの前に追加されるようです。
ax.legend().set_title('Something else')
シーボーンはタイトルを隠された伝説のエントリーとして扱っているようです。どうすれば解決できますか?
実際、シーボーンは伝説のラベルを(サブグループ)タイトルとして誤用しています。そのため、このラベルを削除するか、カスタムテキストで置き換えることが考えられます。
カスタムテキストで置き換える:
legend = ax.legend()
legend.texts[0].set_text("Whatever else")
ラベルの削除:
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles=handles[1:], labels=labels[1:])
ラベルを削除した後でも、もちろん別の(実際の)タイトルを設定できます。
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles=handles[1:], labels=labels[1:], title="Whatever else")
ImportanceOfBeingErnest回答の拡張:
同じ問題がありましたが、「ラベルの削除」の例では、実際の凡例からタイトルと最初のアイテムが削除されました。
handles, labels = ax.get_legend_handles_labels() ax.legend(handles=handles[1:], labels=labels[1:])
これにより、凡例のタイトルのみが削除されます
ax.legend(handles=handles[0:], labels=labels[0:])
(コメントできないので、これを回答として追加します)