python - 即使在 plotly 中未选择任何轨迹,也显示色阶
问题描述
我有一个情节情节,有 2 条痕迹,其中标记啤酒颜色编码。为了显示色阶,我为每条迹线添加了 showscale=True (两条迹线都是规范的)。
import plotly.graph_objects as go
import pandas as pd
df1 = pd.DataFrame({'lat': [50.941357, 50.932171],
'lon': [6.957768, 6.964412],
'value': [0.5, 0.75]})
df2 = pd.DataFrame({'lat': [50.938571, 51.038203],
'lon': [6.961860, 7.001457],
'value': [0.25, 0.99]})
def get_trace(df, trace_name):
trace = go.Scattermapbox(
lat=df['lat'],
lon=df['lon'],
mode='markers',
name=trace_name,
marker=go.scattermapbox.Marker(
color=df['value'],
colorscale=[[0, 'green'], [0.5, 'yellow'], [1.0, 'red']],
size=40,
cmin=0,
cmax=1,
showscale=True
),
)
return trace
fig = go.Figure([get_trace(df1, 'trace 1'), get_trace(df2, 'trace 2')])
fig.update_layout(mapbox_style="open-street-map",
mapbox={'center': go.layout.mapbox.Center(lat=50.970990, lon=6.984498), 'zoom': 11},
showlegend=True,
legend={'x': 0, 'y': 1}
)
fig.show()
这产生以下地图:
如果我取消选择图例中的两条迹线,则(当然)色阶也不可见:
无论是否选择了迹线,如何显示色阶?
解决方案
我找到了解决我的问题的方法。我添加了一个伪空跟踪并将其隐藏在图例中。
empty_trace = go.Scattermapbox(
lat=[0.0],
lon=[0.0],
mode='markers',
name='empty',
showlegend=False,
marker=go.scattermapbox.Marker(
colorscale=[[0, 'green'], [0.5, 'yellow'], [1.0, 'red']],
size=0,
cmin=0,
cmax=1,
showscale=True
),
)
对于我删除的其他痕迹showscale=True
推荐阅读
- node.js - 自动退出 - NodeJS https 网络服务器
- python - 如何在特定条件下将特定函数应用于 DataFrame 列值
- jitsi - 自托管 jitsi-meet 安全
- windows - Windows 中 L"" 后面的编码是什么?
- python - 将 Pandas Dataframe 列除以字典中定义的因子
- wcf - 为什么 IIS 中的授权规则不限制对我的 WCF 服务的访问?
- terraform - 如何在 terraform V.15 中将多个 VPC CIDR 传递给 security_group_rule 资源
- javascript - 哪个浏览器兼容性数据更准确 - caniuse.com 或 developer.mozilla.org?
- kentico - 在干净的机器上启动 Kentico 13 CMS 时出错
- mongodb - 如何使用聚合和 $lookup 将 2 个集合与 mongodb 中的特定字段合并