我可以绘制一张世界Map,其中有:
world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
fig, ax = plt.subplots()
world.plot(ax=ax, color=(0.8,0.5,0.5))
它工作正常,但我想把Map的中心放在本初子午线以外的经度上。我该怎么做?
我可以绘制一张世界Map,其中有:
world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
fig, ax = plt.subplots()
world.plot(ax=ax, color=(0.8,0.5,0.5))
它工作正常,但我想把Map的中心放在本初子午线以外的经度上。我该怎么做?
3条答案
按热度按时间mwkjh3gx1#
这是你可以做到的:
在第一步中,你创建了你的世界,并在你预先定义的边界上分割它。然后你得到所有元素的边界,并检查边界是否符合你想要的位移。然后你将每个大于边界的元素平移到Map的左侧,并将所有其他元素移动到右侧,这样它们就可以以+180°的Angular 对齐。
例如:
Map移动了120°
368yc8dk2#
就像在这个问题中,我需要重置Map的中心,但我也需要移动散点图网络节点的位置,其中绑定到(长,纬度)坐标太。我希望保存一些人的时间,因为它可能不是很明显,最初解决这个问题,你将不得不争论一些不熟悉的类型。
下面是一个移动底层Map和一些附加点的方法:
在此上下文中,pos_all是由[(lat,long)]组成的networkx节点位置
00jrzges3#
Shapely >= 2.0的答案J.P.必须适应:你必须用list(element.geoms)替换list(element):