我正在尋找按地區劃分的西班牙地圖,其中包含 plotly。過去有人做過嗎?我有興趣了解代碼或進行操作的方式,我在互聯網上看到的資訊很少。
import plotly.graph_objects as go
fig = go.Figure(go.Scattergeo())
fig.update_geos(
visible=False, resolution=50, scope="Spain",
showcountries=True, countrycolor="Black",
showsubunits=True, subunitcolor="Blue"
)
fig.update_layout(height=300, margin={"r":0,"t":0,"l":0,"b":0})
fig.show()
我有以前的代碼,但“西班牙”沒有在范圍內定義, “歐洲”、“美國”等都有,那么,我該如何更改它以使西班牙具有情節?
uj5u.com熱心網友回復:
- 使用mapbox代替GEOS
- 您可以將圖層添加到mapbox scatter
- 已經采購了城市和邊界幾何來證明
import requests
import plotly.express as px
import pandas as pd
# get Spain municipal boundaries
res = requests.get(
"https://raw.githubusercontent.com/codeforgermany/click_that_hood/main/public/data/spain-provinces.geojson"
)
# get some cities in Spain
df = (
pd.json_normalize(
requests.get(
"https://opendata.arcgis.com/datasets/6996f03a1b364dbab4008d99380370ed_0.geojson"
).json()["features"]
)
.loc[
lambda d: d["properties.CNTRY_NAME"].eq("Spain"),
["properties.CITY_NAME", "geometry.coordinates"],
]
.assign(
lon=lambda d: d["geometry.coordinates"].apply(lambda v: v[0]),
lat=lambda d: d["geometry.coordinates"].apply(lambda v: v[1]),
)
)
# scatter the cities and add layer that shows municiple boundary
px.scatter_mapbox(df, lat="lat", lon="lon", hover_name="properties.CITY_NAME").update_layout(
mapbox={
"style": "carto-positron",
"zoom": 3.5,
"layers": [
{
"source": res.json(),
"type": "line",
"color": "green",
"line": {"width": 1},
}
],
}
)

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/404589.html
標籤:
上一篇:如何在dart中映射地圖的回傳
