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

如何在Plotly中更改横竖线区间内散点的颜色?

实现Plotly散点图指定区间内散点变色的方法

要实现指定横竖线区间内散点变色,核心是先给数据标记出目标区间内的点,再通过Plotly的颜色映射区分显示,具体修改如下:

步骤1:给数据添加区间标记列

在生成散点图前,对plot_data新增一列,判断每个点是否落在你需要的目标区间。比如要选中x在3900-4221且y在4-4.65的区间,添加代码:

# 标记目标区间内的点,可按需修改区间范围
plot_data['in_target'] = plot_data.apply(
    lambda row: '目标区间内' if (3900 <= row['Calorific Value (kcal/kg)'] <= 4221) and (4 <= row['Hydrogen (%)'] <= 4.65) else '其他',
    axis=1
)

若需要区分多个不同区间,可扩展判断逻辑,给不同区间分配专属标签

步骤2:修改散点图生成代码

给px.scatter添加color参数绑定标记列,同时自定义颜色映射:

hydrogen = px.scatter(
    plot_data,
    x='Calorific Value (kcal/kg)', 
    y='Hydrogen (%)',
    title='Hydrogen Plot',
    width=800,
    height=800,
    hover_name='Lab',
    color='in_target',  # 用标记列控制颜色
    color_discrete_map={'目标区间内': 'orange', '其他': 'blue'}  # 自定义颜色
)

完整修改后的代码片段

parameters = st.selectbox("Parameters",("Carbon","Hydrogen","Nitrogen","Sulfur","Oxygen+Others","Moisture"))
if parameters == 'Hydrogen': # 修正原代码语法缺失,添加if关键字
    # 添加区间标记列
    plot_data['in_target'] = plot_data.apply(
        lambda row: '目标区间内' if (3900 <= row['Calorific Value (kcal/kg)'] <= 4221) and (4 <= row['Hydrogen (%)'] <= 4.65) else '其他',
        axis=1
    )
    # 生成带颜色区分的散点图
    hydrogen = px.scatter(
        plot_data,
        x='Calorific Value (kcal/kg)', 
        y='Hydrogen (%)',
        title='Hydrogen Plot',
        width=800,
        height=800,
        hover_name='Lab',
        color='in_target',
        color_discrete_map={'目标区间内': 'orange', '其他': 'blue'}
    )
    # 保留原横竖线添加逻辑
    hydrogen.add_hline(y=4, line=dict(color='Red'))    
    hydrogen.add_hline(y=4.65, line=dict(color='Red'))
    hydrogen.add_hline(y=6, line=dict(color='Red'))
    hydrogen.add_vline(x=3900, line=dict(color='Red'))
    hydrogen.add_vline(x=4221, line=dict(color='Red'))
    hydrogen.add_vline(x=4400, line=dict(color='Red'))

    st.plotly_chart(hydrogen)

注意事项

  • 原代码缺少if关键字,已在修改后的代码中修正
  • 可根据实际需求调整in_target的判断逻辑,比如选择其他横竖线围成的区间,或同时标记多个区间
  • color_discrete_map支持十六进制颜色码或英文颜色名,可自由替换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 16:03:24