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

如何在Plotly绘制的散点图中高亮满足指定数值条件的区域

实现方法

你原有代码中引入的matplotlib和调用的plt.figure()对Plotly生成的交互式图表没有作用,可以直接删掉,Plotly可以通过update_layout自行配置画布尺寸。
要高亮dist1<0.5且dist2>15的区域,直接调用Plotly Figure实例的add_shape方法插入矩形即可,参数可自定义填充色、透明度等样式,把图层放在散点下方就不会遮挡数据点。

修改后的完整代码如下:

import plotly.express as px
import pandas as pd

for i in range(len(values)):
    df_results = pd.DataFrame.from_records(values[i][1])
    df_results.columns = ['value','dist1','dist2']
    # 绘制基础散点图
    fig = px.scatter(df_results, x="dist1", y="dist2")
    # 添加高亮矩形区域
    fig.add_shape(
        type="rect",
        x0=0,  # dist1最小值一般为0,也可以替换为df_results['dist1'].min()适配数据
        x1=0.5,
        y0=15,
        y1=df_results['dist2'].max(),  # 上边界取当前数据集dist2的最大值,自适应不同批次数据
        fillcolor="lightyellow",  # 高亮区域填充色
        opacity=0.3,  # 低透明度避免遮挡散点
        layer="below",  # 把形状放在散点图层下方
        line_width=1,
        line_color="orange"  # 边框颜色
    )
    # 配置画布尺寸,对应你原来的15*7英寸的比例
    fig.update_layout(width=1500, height=700)
    fig.show()

可选扩展功能

  • 如果需要用圆形高亮,把type="rect"改为type="circle"即可,注意圆形的边界参数是外接矩形的坐标,需要根据你坐标轴的比例调整避免变形
  • 如果需要同时高亮落在目标区域的散点,可以给数据集新增标签字段,用颜色区分散点:
df_results['is_target'] = (df_results['dist1'] < 0.5) & (df_results['dist2'] > 15)
fig = px.scatter(df_results, x="dist1", y="dist2", color='is_target', color_discrete_map={True: 'red', False: 'navy'})
  • 如果需要给高亮区域加文字说明,可以调用fig.add_annotation()方法添加标注。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:45:08