我想使用Shapely来完成我的计算几何项目。我需要能够可视化和显示多边形、直线和其他几何对象。我曾尝试使用Matplotlib,但遇到了问题。
from shapely.geometry import Polygon
import matplotlib.pyplot as plt
polygon1 = Polygon([(0,5),
(1,1),
(3,0),
])
plt.plot(polygon1)
plt.show()
我希望能够在绘图中显示这个多边形。我该如何更改代码来实现这一点?
9条答案
按热度按时间pw136qt21#
用途:
或者,更简洁地说:
iyfjxgzm2#
有点晚了,但我发现最方便的方法是使用上面建议的Geopandas,但没有先写入文件。
查看Geopandas的文档。GeoSeries
jobtbby33#
几何体可以是
Point
、LineString
、Polygon
及其集合版本MultiPoint
、MultiLineString
、MultiPolygon
。积分
只需将坐标传递给
pyplot
:LineString
只需将x和y集合传递给
pyplot
。它们是使用xy
属性获得的。该属性返回如下内容:可以这样使用:
多边形
对于
Polygon
,currently accepted answer确实只适用于退化的多边形,即没有洞的多边形。下面是一个适用于任何多边形的版本,其中包含颜色和其他属性的常用关键字。这不是我的设计,它只是从GeoPandas source改编而来它是这样使用的:
收藏
对于
Multi
- collections,只需在每个元素上调用plot函数。um6iljoc4#
如果你的数据在
.shp
文件中,我推荐geopandas:91zkwejq5#
您也可以“跟随”Shapely用户手册中的源代码:(点击“源代码”)。
这里提供的“源代码”不是真正的Shapely源代码,而是用户手册中用于创建示例的代码。使用Shapely用户手册中的“示例代码”,您可以快速创建具有相同友好风格的图像。
你需要'figures'模块,它只是一个简短的,非常简单的python文件,来自:https://github.com/Toblerity/Shapely/blob/main/docs/code/figures.py .(取自per https://gis.stackexchange.com/questions/362492/shapely-examples-use-figures-what-is-this-library)
e5njpo686#
这可能是一个矫枉过正,但作为其他好的评论的替代,我会添加一个安装QGIS的选项-一个处理几何图形的免费软件。你所需要做的就是将你的几何图形保存为形状文件(.shp),geoJSON或任何其他格式,然后用QGIS打开它。如果你正在计划一个大项目,它可能比使用matplotlib更方便。
t40tm48m7#
我厌倦了Matplotlib的janky API来创建这些绘图图像,所以我创建了自己的库。Python模块称为WKTPlot,并使用Bokeh来绘制数据的交互式绘图。我有关于如何绘制WKT字符串数据以及Shapefile数据的示例。
它支持所有最有形状的几何类型:
b5lpy0ml8#
下面是一个使用matplotlib补丁的解决方案,它也考虑了漏洞:
2ic8powd9#
如果您使用Shapely 2.0+,请使用
shapely.plotting
模块: