How do I plot Shapely polygons and objects using Matplotlib?
Use:
import matplotlib.pyplot as plt
x,y = polygon1.exterior.xy
plt.plot(x,y)
Or, more succinctly:
plt.plot(*polygon1.exterior.xy)
A little late but I find the most convenient way to do this is with Geopandas as suggested above but without writing to a file first.
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()
Checkout the docs for Geopandas.GeoSeries
If your data is in a .shp
file, I would recommend geopandas:
import geopandas as gpd
import matplotlib.pyplot as plt
shapefile = gpd.read_file("path/to/shapes.shp")
shapefile.plot()
plt.show()
It might be an overkill, but as an alternative to other good comments I would add an option of installing QGIS - a free software for working with geometries. All you need to do is to save your geometries as a shape file (.shp), geoJSON or any other format and open it with QGIS. If you're planning a big project it maybe more convenient at the end than using matplotlib.