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

如何根据数值条件设置Scattermapbox标记颜色?代码异常排查

解决Plotly散点地图标记颜色不按value值区分的问题

问题根源

你当前代码的np.where逻辑判断存在两处错误:

  1. np.logical_and(df['value'].values < 20, 20 >= df['value'].values)是冗余判断,两个条件完全等价,本质就是筛选value < 20的行;
  2. 颜色映射完全不符合需求:满足value <20的被设为蓝色,其余全设为绿色,既没区分value>20的红色,还搞反了原本要的绿色对应关系。

正确实现代码

根据需求(value <20设为绿色,value>20设为红色,value=20可自定义颜色),提供两种实现方式:

方式一:嵌套np.where实现多条件判断

import numpy as np
import plotly.graph_objects as go
import pandas as pd

# 构造示例DataFrame
data = {
    'name': ['BELAL01', 'BELHB23', 'BELLD01', 'BELLD02', 'BELR833', 'BELSA04', 'BELWZ02', 'BETM802'],
    'lat': [51.23619, 51.1703, 51.10998, 51.12038, 51.32766, 51.31393, 51.1928, 51.26099],
    'lon': [4.38522, 4.341, 5.00486, 5.02155, 4.36226, 4.40387, 5.22153, 4.4244],
    'value': [12, 16, 28, 11, 45, 87, 12, 16]
}
df = pd.DataFrame(data)

fig = go.Figure(go.Scattermapbox(
    mode = "markers",
    lon = df['lon'],
    lat = df['lat'],
    marker=dict(
        color=np.where(df['value'] < 20, 'green', 
                      np.where(df['value'] > 20, 'red', 'yellow'))  # value=20时设为黄色,可自行修改
    )
))
fig.update_layout(mapbox_style="open-street-map")
fig.show()

方式二:列表推导式(更直观)

import plotly.graph_objects as go
import pandas as pd

# 构造示例DataFrame
data = {
    'name': ['BELAL01', 'BELHB23', 'BELLD01', 'BELLD02', 'BELR833', 'BELSA04', 'BELWZ02', 'BETM802'],
    'lat': [51.23619, 51.1703, 51.10998, 51.12038, 51.32766, 51.31393, 51.1928, 51.26099],
    'lon': [4.38522, 4.341, 5.00486, 5.02155, 4.36226, 4.40387, 5.22153, 4.4244],
    'value': [12, 16, 28, 11, 45, 87, 12, 16]
}
df = pd.DataFrame(data)

fig = go.Figure(go.Scattermapbox(
    mode = "markers",
    lon = df['lon'],
    lat = df['lat'],
    marker=dict(
        color=['green' if v < 20 else 'red' if v > 20 else 'yellow' for v in df['value']]
    )
))
fig.update_layout(mapbox_style="open-street-map")
fig.show()

效果说明

运行上述代码后,value<20的标记会显示绿色,value>20的标记显示红色,若存在value=20的条目,会显示黄色(可根据需求修改该颜色)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:24:31