matplotlib 从海运图中删除图例部分

irlmq6kh  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(106)

使用'tips'数据集作为玩具模型,我生成了以下图:

import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")

cmap = sns.cubehelix_palette(dark=.3, light=.8, as_cmap=True)
g = sns.scatterplot(x="total_bill", y="sex", hue="smoker", size = 'tip',sizes=(320, 600), data=tips)
plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0., fontsize=13)
plt.show(g)

这个图像正是我需要的。然而,我想从图例中删除size = 'tip',只保留吸烟者。本质上,删除那些标记为0.0到12.0的黑色圆圈。我如何确保我的图例只有一个我选择的变量?

czfnxgou

czfnxgou1#

我通过索引图例中的标签找到了修复方法。

import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")

cmap = sns.cubehelix_palette(dark=.3, light=.8, as_cmap=True)
ax = sns.scatterplot(x="total_bill", y="sex", hue="smoker", size='tip', sizes=(320, 600), data=tips)

# extract the existing handles and labels
h, l = ax.get_legend_handles_labels()

# slice the appropriate section of l and h to include in the legend
ax.legend(h[0:3], l[0:3], bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0., fontsize=13)
plt.show()

相关问题