GeoPandas 和 Bokeh 从数据中提取 xs 和 ys - WorldMap

GeoPandas and Bokeh extract xs and ys from data - WorldMap

我在

上找到了这个 post

我需要的基本上是相同的东西,但对于整个世界的地图(从 GeoPandas 中提取 XS 和 ys 并转换为 bokeh 可读格式)。我正在为世界数据同时具有多边形和多边形这一事实而苦苦挣扎。

如果有人能提供帮助,将不胜感激。 谢谢!

好的,所以我解决了它,但它需要改进。如果您有任何改进的想法,请告诉我。我也 运行 遇到运行时错误,这可以通过取消注释某些代码部分(在代码中标记)或降级 bokeh 来解决。我没有尝试降级散景,我只是在某处看到那个答案。

(此外,我以前从未在 SO 上发过帖子,所以我不太确定这一切是如何运作的,所以请保持温和)。

https://github.com/nikosarcevic/GeoMapping

这就是我在评论中提到的使用 pandas GeoJSONDataSource 运行 GeoJSON 的方法。

from bokeh.models import GeoJSONDataSource
from bokeh.plotting import figure, show, output_notebook
import geopandas as gp

output_notebook()

world = gp.read_file(gp.datasets.get_path('naturalearth_lowres'))
geo_source = GeoJSONDataSource(geojson=world.to_json())

p = figure(title='World', tooltips=[('Country', '@name')],
           x_range=(-180, 180), y_range=(-90, 90), 
           x_axis_location=None, y_axis_location=None,
           plot_width=1000, plot_height=500
          )
p.patches('xs', 'ys', fill_alpha=0.4, fill_color='grey', 
          line_color='black', line_width=0.5, source=geo_source
         )
show(p)

输出