[英]Change legend location and labels in Seaborn scatter plot
我想在 Seaborn 散點圖中更改我的圖例的位置和標簽。 這是我的代碼:
ax_total_message_ratio=sns.scatterplot(x='total_messages', y='email_messages_ratio',hue='poi',data=df_new)
ax_total_message_ratio.set_title("Email Messages Ratio vs. Total Messages Across Poi",y=1.12,fontsize=20,fontweight='bold')
ax_total_message_ratio.set_ylabel('Email Messages Ratio')
ax_total_message_ratio.set_xlabel('Total Messages')
ax_total_message_ratio.legend.loc("lower right")
put.show()
但我收到以下錯誤消息;
'function' object has no attribute 'loc'
。 我可以獲得有關如何使用 Seaborn 控制傳奇的幫助嗎? 此外,我還需要將圖例標簽中的0
替換為 No,將1
替換為 Yes。 謝謝
您可以在調用legend()
使用loc
關鍵字調整位置,例如
ax_total_message_ratio.legend(loc="lower right")
要為標記包含自定義標簽,您可以創建自定義圖例,即
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D
custom = [Line2D([], [], marker='.', color='b', linestyle='None'),
Line2D([], [], marker='.', color='r', linestyle='None')]
fig = plt.figure(figsize=(8,5))
plt.legend(custom, ['Yes', 'No'], loc='lower right')
plt.show()
這會給你
並且應該刪除自動生成的圖例,只留下自定義圖例。
您可以使用便捷方法 get_legend_handles_labels() 來獲取標簽的句柄和文本:
ax=sns.scatterplot(x='total_messages', y='email_messages_ratio',hue='poi',data=df_new)
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles, ['Yes', 'No'], loc='lower right')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.