You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整Seaborn散点图图例中标记点的大小?

调整Seaborn scatterplot图例标记大小的方法

Seaborn的scatterplot函数中,s参数仅控制绘图区域内散点的大小,不会同步修改图例里的标记尺寸。要调整图例标记大小,需要手动获取图例对象并修改其属性,具体实现如下:

修改后的示例代码

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame()
df['Y_LOCATION'] = [1, 1, 1, 2, 2, 4]
df['X_LOCATION'] = [1, 2, 3, 4, 3, 1]
df['VALUE'] = [-0.45, -0.14, -0.12, -0.36, -0.48, -0.20]

sns.set(rc={'figure.figsize':(40,20)})
sns.set(font_scale=2)
# 显式指定参数名(新版本Seaborn推荐写法)
ax = sns.scatterplot(x=df.Y_LOCATION, y=df.X_LOCATION, hue=df.VALUE, s=800, palette="Greens_r")

# 获取图例并调整标记大小
legend = ax.legend()
for handle in legend.legendHandles:
    handle.set_sizes([800])  # 可根据需求修改数值,比如设为600

plt.show()

关键说明

  • 新版本Seaborn建议显式传入x、y、hue等参数,避免位置参数导致的潜在问题
  • 通过ax.legend()获取图例对象后,遍历legendHandles(每个handle对应图例中的一个标记),调用set_sizes()方法设置标记大小,数值可与绘图时的s参数保持一致,也可单独调整

内容的提问来源于stack exchange,提问作者Sheldon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 18:22:41