是否可以在matplotlib的极坐标图中绘制多边形补丁?

时间:2013-07-13 22:17:53

标签: matplotlib

我有以极坐标(r,theta)表示的多边形的顶点。我想在极地情节中特别绘制一个填充的多边形。

我知道add_patch可以用于在matplotlib的xy模式下绘制。是否存在极坐标绘图模式的等价物?

1 个答案:

答案 0 :(得分:2)

您可以在极坐标子图上使用ax.add_line():

import matplotlib
import matplotlib.pyplot as plt
import numpy as np

r = np.ones(100)
theta = np.linspace(0,2*np.pi,100)
polygon = matplotlib.patches.Polygon(zip(theta,r),fill=False)

fig = plt.figure()
polar = fig.add_subplot(111,projection='polar')
polar.add_line(polygon)
polar.autoscale()

plt.show()

另一种方法是使用ax.fill()和多边形的点。

而不是:

polar.add_line()

你可以使用:

polar.fill(theta,r,fill=False)

如果没有,你将获得相同的结果:

polygon = matplotlib.patches.Polygon(zip(theta,r),fill=False)

enter image description here