使用单个 LineString 显示两个数据字段

问题描述 投票:0回答:1

我有一个反复出现的问题,我找不到简单的解决方案,但我猜有一个。

我有一个代表街道级别道路交通数据的数据集。该数据集与道路网络图相关联,其中每条边代表一条道路,每个节点代表一个交叉路口。对于每条边,我都有一个

shapely
LineString 对象,其中包含道路的地理属性。

我的目标是绘制一张代表该流量数据集的地图。例如,我可以使用

geopandas
轻松做到这一点,但我的问题来自这样一个事实:大多数道路,即使是双向的,也用单个 LineString 对象表示,因此不会看到其中一个方向因为两者都会绘制在彼此之上。

有没有简单的方法可以解决这个问题?理想情况下,我希望最终得到这样的情节:

python plot geopandas shapely
1个回答
0
投票

以下代码片段使用 offset_curve 将线字符串加倍,我认为这就是您正在寻找的。

data = np.array([np.linspace(0,10), np.sin(np.linspace(0,10))])
road = shapely.LineString(data.T)
constant = 0.1
big_road = shapely.MultiLineString([road.offset_curve(constant), road.offset_curve(-constant)])

给出:

from shapely import plotting
plotting.plot_line(big_road)
plt.savefig('example.jpg')

© www.soinside.com 2019 - 2024. All rights reserved.