我有一个位势数据,它由区域name(District),、几何学列和 column 列组成。我的目标是用下面提到的https://plotly.com/python/choropleth-maps/#using-geopandas-data-frames方法绘制一张副线图。
这是我的数据片段

我还检查了我的列的格式/类型是否正确。

这是我用来绘制地图的代码
fig = px.choropleth(merged,
geojson=merged.geometry,
locations=merged.index,
color="Amount")
fig.update_geos(fitbounds="locations", visible=False)
fig.show()它得出了以下数字

这显然不是正确的数字。出于某些原因,它没有显示地图,而是显示了一条线,当我放大时,我可以看到地图,但它有线条贯穿其中。像这样

有没有人遇到过类似的问题?如果是这样的话,你是如何解决的?
我使用的实际版本是4.7.0。我试过升级到最近的版本,但仍然没有工作。
任何帮助都是非常感谢的。请在我的github上找到我的代码和数据。
发布于 2021-01-08 04:00:05
我会给你解决问题的@tgrandje的评论的答案。感谢“Poopah”和“tgrandje”给了我们提出答案的机会。
import pandas as pd
import plotly.express as px
import geopandas as gpd
import pyproj
# reading in the shapefile
fp = "./data/"
map_df = gpd.read_file(fp)
map_df.to_crs(pyproj.CRS.from_epsg(4326), inplace=True)
df = pd.read_csv("./data/loans_amount.csv")
# join the geodataframe with the cleaned up csv dataframe
merged = map_df.set_index('District').join(df.set_index('District'))
#merged = merged.reset_index()
merged.head()
fig = px.choropleth(merged, geojson=merged.geometry, locations=merged.index, color="Amount")
fig.update_geos(fitbounds="locations", visible=False)
fig.show()

发布于 2022-07-26 20:29:06
在这个答案 over at gis.stackexchange.com中提到了问题的另一个可能来源(当使用实际的gis.stackexchange.com时):
locations参数必须指向与GeoJSON的id匹配的列。geojson参数需要一个字典。要解决问题,您应该:(i)将位置指向dataframe的索引,(ii)将GeoJSON字符串转换为字典。
这并不完全是你问题的答案,但我认为我的问题和你的一样,这帮助了我。所以我在这里包括答案。
https://stackoverflow.com/questions/65507374
复制相似问题