【发布时间】:2021-01-08 12:07:41
【问题描述】:
我有一个 geopandas 数据框,它由区域名称 (District)、geometry 列和 amount 列组成。我的目标是使用下面提到的方法绘制等值线图 https://plotly.com/python/choropleth-maps/#using-geopandas-data-frames
这是我的数据框的 sn-p
我还检查了我的列的格式/类型是否正确。
这是我用来绘制地图的代码
fig = px.choropleth(merged,
geojson=merged.geometry,
locations=merged.index,
color="Amount")
fig.update_geos(fitbounds="locations", visible=False)
fig.show()
它产生了下图
这显然不是正确的数字。由于某些原因,它不显示地图,而是显示一条线,当我放大时,我能够看到地图,但它有线穿过它。像这样
有没有人遇到过类似的问题?如果是这样,您是如何解决的?
我使用的 Plotly 版本是 4.7.0。我已尝试升级到最新版本,但仍然无法正常工作。
非常感谢任何帮助。请在我的github 上找到我的代码和数据。
【问题讨论】:
-
我用
px.choropleth_mapbox()检查了同样的结果。地图已显示,但未按地区填充。我检查了几何数据,它是纬度和经度值吗?我查了官方reference page的数据。 -
@r-beginners 数据有一个几何列,其中包含每个区域的多边形/形状。我更新了我的问题以显示每列的 Dtype。
-
@r-beginners 的意思是,您应该先尝试将 GeoDataFrame 重新投影到 WGS84 中。例如,gdf.to_crs(pyproj.CRS.from_epsg(4326), inplace=True)。网络上的所有示例似乎都在此投影中使用了地理数据框,这并不意外...请注意,matplotlib 只是一个画布,因此无论您的投影是什么,绘制数据框都不会遇到任何问题。
-
我会把它留给值得的@r-beginners!
-
@Poopah,您可以发布自己的答案。这是最好的方法。