如何以 DataFrame 列中指定的颜色制作 Plotly Express 绘图点?
我有一个带有列的 DataFrame:名称、纬度、经度和颜色,如下所示:
df = pd.DataFrame({'name': pd.Series((1, 2, 3, 4), dtype='int32'),
'LAT': pd.Series((40.62718, 40.63718, 40.74718, 40.75718), dtype='float64'),
'LON': pd.Series((-73.29494, -73.30494, -73.31494, -73.32494), dtype='float64'),
'color': ('#222A2A', '#2E91E5', '#FC0080', '#750D86')})
我无法让 Plotly Express 以我在 DataFrame 中指定的颜色绘制点。它绘制它想要的任何颜色,即使使用color_discrete_map='identity'
and color='colors'
,这是文档所说的。
color_discrete_map (dict with str keys and str values (default {})) – 字符串值应该定义有效的 CSS-colors 用于覆盖 color_discrete_sequence 以将特定颜色分配给与特定值对应的标记。color_discrete_map 中的键应该是由颜色表示的列中的值。或者,如果 color 的值是有效颜色,则可以传递字符串“identity”以直接使用它们。
(https://plotly.github.io/plotly.py-docs/generated/plotly.express.scatter_mapbox.html)
fig = px.scatter_mapbox(df, lat="LAT", lon="LON", hover_name='name',
hover_data=["name", "LAT", "LON", "color"],
color_discrete_map='identity', color='color', center=dict(lat=40.95004, lon=-73.07169),
zoom=7, height=300)
fig.update_layout(mapbox_style="open-street-map")
fig.update_layout(margin={"r":0,"t":0,"l":0,"b":0})
fig.update_layout(autosize=False, width=1500, height=500)
fig.show()
请帮忙。