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

如何调整Plotly散点图标记尺寸并保留悬停原始数值

Plotly散点尺寸差异优化方案

直接调整尺寸映射参数即可解决散点大小辨识度低的问题,全程不需要修改原始字段值,悬停提示可以完整保留原始some_size的数值。

  • 快速调整方案
    直接在px.scatter()中新增size_max参数即可,该参数默认值为20,控制散点的最大像素尺寸,调大这个值会整体放大所有散点的尺寸映射比例,原始值的大小相对关系不会变,悬停提示的数值也不会受影响。你可以根据实际显示效果把值调到40~80区间试,直到大小差异足够明显。
    修改后的示例代码:
px.scatter(data_frame=testdf,
       x = 'some_x',
       y = 'some_y',
       size = 'some_size',
       size_max = 60, # 新增该行,数值可按需调整
       color = 'sth_colorful',
       title = 'stackoverflow',
       range_x = [-10, 1100],
       range_y = [-0.08, 1],
       hover_name = 'sth_i_want_to_check',
       animation_frame = 'year_of_course'
      )
  • 强化差异方案
    你的原始尺寸值区间是20~35,相对差值较小,即便调大size_max,视觉上的大小差可能还是达不到预期。这时候可以先把原始尺寸值线性映射到跨度更大的数值区间用来控制散点大小,同时指定悬停层展示原始尺寸值即可。
    示例代码:
import numpy as np
# 把原始20~35的尺寸值映射到5~50的宽区间,拉大尺寸差,不修改原始some_size字段
testdf['size_for_render'] = np.interp(
    testdf['some_size'],
    [20, 35],
    [5, 50]
)

fig = px.scatter(data_frame=testdf,
       x = 'some_x',
       y = 'some_y',
       size = 'size_for_render', # 用映射后的值控制渲染尺寸
       size_max = 60,
       color = 'sth_colorful',
       title = 'stackoverflow',
       range_x = [-10, 1100],
       range_y = [-0.08, 1],
       hover_name = 'sth_i_want_to_check',
       # 隐藏渲染用的尺寸字段,强制展示原始some_size数值
       hover_data = {'size_for_render': False, 'some_size': True},
       animation_frame = 'year_of_course'
      )

上述两种方案里的size_max取值、映射区间的端点值都可以根据你的实际显示需求灵活调整,不会破坏原有图表的动画、配色、坐标轴范围等其他配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 13:36:22