如何在Python Plotly Express中设置谷歌地图样式的标记?
解决Plotly Express标记改为谷歌地图样式的方法
要实现谷歌地图那种底部带尖的水滴形标记,你需要自定义标记的SVG路径(Plotly内置符号没有完全匹配的样式),同时删掉原代码里多余的fig.scatter()语句。
修改后的完整代码如下:
def map(): fig = px.scatter_mapbox(df, hover_name=df['kabko'], hover_data=['Jumlah'], lon=df['long'], lat=df['lat'], zoom=5, # size=df['Jumlah'], width=1200, height=900, title="Pesebaran Covid-19 di Indonesia") # 替换为谷歌地图样式的标记 fig.update_traces(marker=dict( size=18, # 可根据需求调整标记大小 path="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z", color="#ea4335", # 谷歌地图默认标记的红色 line=dict(width=1, color="white") # 可选:添加白色描边更贴近谷歌样式 )) fig.update_layout(mapbox_style='open-street-map') fig.update_layout(margin={"r": 0, "t": 50, "l": 0, "b": 10}) fig.show()
关键说明:
path参数里的字符串是谷歌地图标记的SVG路径,直接使用就能渲染出标准水滴形标记。color="#ea4335"是谷歌地图默认标记的红色,你可以根据需求替换成其他颜色。- 原代码里的
fig.scatter()属于冗余语句,会额外生成空的散点图层,必须删掉。
内容的提问来源于stack exchange,提问作者Mr_G_20
相关产品推荐
相关产品推荐

