如何使用matplotlib绘制形状多边形和对象?

时间:2019-04-04 18:04:25

标签: python matplotlib shapely

我想在我的计算几何项目中使用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()

我希望能够在绘图中显示该多边形。我该如何更改我的代码?

4 个答案:

答案 0 :(得分:6)

如果您的数据位于.shp文件中,则建议您选择geopandas:

import geopandas as gpd
import matplotlib.pyplot as plt

shapefile = gpd.read_file("path/to/shapes.shp")
shapefile.plot()
plt.show()

答案 1 :(得分:6)

有点晚了,但是我发现最方便的方法是如上所述使用Geopandas,但不必先写文件。

from shapely.geometry import Polygon
import matplotlib.pyplot as plt
import geopandas as gpd

polygon1 = Polygon([(0,5),
                    (1,1),
                    (3,0),
                    ])

 p = gpd.GeoSeries(polygon1)
 p.plot()
 plt.show()

Polygon Plotted using Geopandas

签出Geopandas.GeoSeries的文档

答案 2 :(得分:1)

使用:

import matplotlib.pyplot as plt

x,y = polygon1.exterior.xy
plt.plot(x,y);

或更简洁地说:

plt.plot(*polygon1.exterior.xy);

答案 3 :(得分:0)

这可能是一个矫kill过正的方法,但是作为其他好的注释的替代方法,我将添加一个安装QGIS的选项-一个用于处理几何的免费软件。您需要做的就是将几何图形另存为形状文件(.shp),geoJSON或任何其他格式,然后使用QGIS将其打开。如果您正在计划一个大型项目,那么最后可能比使用matplotlib更方便。