将绘图标记从连续转换为离散

rur96b6h  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(320)

下面是我的输入文件,我正试图使用plotly在Map上显示。

data.csv
lat,long,type
-7.80715,110.371203,1
-7.791087,110.368346,3
-7.778744,110.365107,7
-7.77877,110.365379,4

脚本可以工作,但比例以连续格式显示。我试图转换该列 type 按这里提到的方式发送文本,但我无法让它工作。有没有更简单的方法来解决这个问题?

df = pd.read_csv("data.csv").dropna()
fig = go.Figure(go.Scattermapbox(
        lat=df["lat"].tolist(),
        lon=df["long"].tolist(),
        mode='markers',
        text=df['type'].tolist(),
        marker=go.scattermapbox.Marker(
            size=10,
            color=df['type'],
            showscale=True
        ),
    ))

fig.show()
slhcrj9b

slhcrj9b1#

如果要指定离散颜色,可以直接将其作为颜色规范列表处理,也可以在plotly_express中指定默认颜色名称。

import plotly.graph_objects as go
import plotly.express as px

mapbox_access_token = open("mapbox_api_key.txt").read()
colors = px.colors.qualitative.D3

fig = go.Figure(go.Scattermapbox(
        lat=df["lat"].tolist(),
        lon=df["long"].tolist(),
        mode='markers',
        text=df['type'].tolist(),
        marker=go.scattermapbox.Marker(
            size=10,
            color=colors, 
            showscale=False
        ),
    ))

fig.update_layout(
    autosize=False,
    height=450,
    width=1000,
    mapbox=dict(
        accesstoken=mapbox_access_token,
        style="outdoors",
        center=dict(
            lat=-7.78,
            lon=110.365
        ),
        zoom=10),
    showlegend = False
)

fig.show()

相关问题