Plotly Express:使用DataFrame列px.scatter_mapbox中的要素颜色绘制散点图MapBox

问题描述

如何使用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),'color': ('#222A2A','#2E91E5','#FC0080','#750D86')})

我无法让Plotly Express以我在DataFrame中指定的颜色来绘制点。即使使用color_discrete_map='identity'color='colors',它也会绘制所需的颜色,这正是文档所说的。

color_discrete_map(带有str键和str值的字典(认为{}))–字符串值应定义有效的CSS颜色。用于覆盖color_discrete_sequence,以将特定颜色分配给与特定值相对应的标记。 color_discrete_map中的键应该是由color表示的列中的值。或者,如果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()

请帮助。

解决方法

我刚刚在我正在使用的情节中做到了这一点。在我的数据框中,有一个名为“颜色”的系列,根据打印点的类型而不同,只是“绿色”或“蓝色”。

我的无花果分配看起来像这样:

fig = px.scatter_mapbox(branches,lat="lat",lon="long",hover_name="nm_short",hover_data=["nm_short","city","State"],color_discrete_sequence=[df.Color],zoom=3.5,height=300)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...