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

如何在Plotly气泡图中增加气泡间距与放大气泡尺寸

针对Plotly气泡图的两个优化实现方法

1. 拉开紧凑气泡的间距

对于test 98lop1和test9665 opp1这类重叠的气泡,有两种实用处理方式:

  • 手动微调(快速解决):直接定位这两个气泡在数据中的行,给它们的x或y坐标加/减一个小值(比如0.3-0.8,具体数值根据你的坐标刻度范围调整),直接拉开距离。示例代码:
# 假设你的数据存储在DataFrame中
df.loc[df['name'] == 'test 98lop1', 'x'] += 0.5
df.loc[df['name'] == 'test9665 opp1', 'x'] -= 0.5
  • 自动批量处理(适合多重叠场景):如果存在大量重叠气泡,可以通过计算气泡间距离,自动偏移重叠的气泡,示例代码如下:
import numpy as np

# 假设df包含x、y、size、name列,先计算每个气泡的等效半径(对应Plotly的size面积)
df['radius'] = np.sqrt(df['size']) * 0.1  # 0.1为缩放系数,根据你的size实际大小调整

for i in range(len(df)):
    for j in range(i+1, len(df)):
        # 计算两个气泡中心的欧氏距离
        dist = np.sqrt((df.loc[i,'x']-df.loc[j,'x'])**2 + (df.loc[i,'y']-df.loc[j,'y'])**2)
        # 如果距离小于两半径之和,说明重叠,偏移其中一个气泡
        if dist < df.loc[i,'radius'] + df.loc[j,'radius']:
            offset = (df.loc[i,'radius'] + df.loc[j,'radius']) - dist
            # 沿x轴偏移,也可改为y轴方向
            df.loc[j,'x'] += offset

2. 放大气泡尺寸4%

这个需求实现非常直接,核心是对原始size值进行缩放,注意Plotly的size参数对应气泡的面积:

  • 如果你的原始size就是面积,直接乘以1.04即可:
# 预处理数据方式
df['size'] = df['size'] * 1.04

# 或绘图时直接计算的方式
import plotly.express as px
fig = px.scatter(df, x='x', y='y', size=df['size']*1.04, text='name')
  • 如果你的原始size是半径,要保证面积放大4%,需要把半径乘以sqrt(1.04)≈1.0198,这样面积就是原来的1.04倍:
df['size'] = df['size'] * np.sqrt(1.04)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 05:06:13