我有一个具有以下结构的CSV文件
cardodb_id,CONCELHO,LAT,LONG,DATA,INC 225,Abrantes,39.466667,-8.2,2020-03-25,1000
以及具有以下结构的Json文件:
{"type":"FeatureCollection", "features": [ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-8.163874,39.626553],[-8.164286,39.626686],[-8.165384,39.626633],*(more coordinates' pairs)*,[-8.163874,39.626553]]]},"properties":{"cartodb_id":225,"id_2":225,"id_1":16,"id_0":182,"varname_2":null,"nl_name_2":null,"engtype_2":"Municipality","type_2":"Concelho","name_2":"Abrantes","name_1":"Santarém","name_0":"Portugal","iso":"PRT","split_id":"1"}} ]}
此处的CSV和json文件都是较大集合的一部分,但这将作为一个示例
我的代码如下所示
import json
with open('abrantes.json') as json_file:
abr = json.load(json_file)
import pandas as pd
df = pd.read_csv("abrantes.csv")
import plotly.express as px
fig = px.choropleth(df, geojson=abr, locations='cardodb_id', color='INC',
color_continuous_scale="Viridis",
range_color=(0, 5000),
labels={'INC':'Incidência'}
)
fig.show()
最终的结果是一个右侧比例为0到5000的空贴图,当时我希望多边形填充与“INC”对应的颜色,即“1000”
我做错了什么?提前感谢您提供的所有帮助。
要绘制地图,px.choropleth()必须将数据帧的ID与GeoJSON的ID匹配。 使用参数
locations
指定数据帧中ID为的列。 您缺少的是参数featureidkey
,用于在GeoJSON中指定相同的ID。或者,您可以省略featureidkey
,但是GeoJSON中的功能需要一个参数id
然后你必须注意拼写。您的csv文件有一列
cardodb_id
,您的GeoJSON文件有一个参数cartodb_id
由于您提供的多边形非常小,因此它在世界地图上不可见。因此,我建议添加
fig.update_geos(fitbounds="locations")
以将地图缩放到感兴趣的区域相关问题 更多 >
编程相关推荐