更改 Seaborn 散点图中的图例位置和标签
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')
我想更改 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')