我有一个阴谋的情节,上面有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()
这将产生以下地图:
如果我取消选择图例中的两条迹线,那么(当然)色阶也不可见:
无论是否选择了迹线,如何显示色标?
答案 0 :(得分:0)
我找到了解决问题的方法。 我添加了一个伪空跟踪,并将其隐藏在图例中。
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