'matplotlib:plot a line closed

I plot a figure as below:

plt.plot(lon,lat,'ro-')
plt.show()

enter image description here

but the lines aren't closed. How can I make them closed as polygons? thank you



Solution 1:[1]

Use matplotlib.pyplot.fill(lon,lat,fill=False) instead of plot().

See http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.fill for details. The color string refers to the interior, so to use red for the polygon, use

plt.fill(lon, lat, edgecolor='r', fill=False)

and continue to use plot() to place circles on the vertices if desired.

Solution 2:[2]

A helper method I use:

def plotPolygonOutline(points: List[Tuple[float, float]], color='r', lineWidth=1):
    x, y = map(list, zip(*points))
    x.append(x[0])
    y.append(y[0])
    plt.plot(x, y, marker='o', color=color, linewidth=lineWidth)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 qwertz