用于极坐标图的类matplotlib.patches.Ellipse

时间:2015-06-16 15:35:32

标签: python matplotlib

是否有可能在极坐标图中添加椭圆? matplotlib修补椭圆类neeeds(x,y,width,height),其中(x,y)是水平/垂直轴的总长度(直径)的中心和宽度和高度。

如果我将极地线转换为中心的笛卡尔线,它就不起作用。

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Ellipse

fig=plt.figure()
ax=plt.subplot(111, polar=True)
x= 200*np.cos(np.pi)
y= 200*np.sin(np.pi)
ax.add_patch(Ellipse((x,y),100,100,fill=False))
plt.show()

到目前为止

2 个答案:

答案 0 :(得分:0)

我猜你现在已经做到了,但万一有人想知道并四处闲逛:

el = Ellipse((0.61 * np.pi, 0.8), 0.09, 0.08, color='black')
    ax.add_patch(el)

让鼠标悬停在极坐标图上,将为您提供0.61π,0.8

的信息

答案 1 :(得分:0)

对我来说,绘制矩形的方法如下:

1.-获取矩形的极坐标:

rec_pts=ax.InvertedPolarTransform().transform(values=rectangle_points)

2.-在极轴上用以下坐标绘制一条线:

line,=ax.plot(rec_pts[:,0],rec_pts[:,1])

3.-使用已经在极坐标中的线的路径绘制所需的面片:

from matplotlib.patches import PathPatch
ax.add_patch(PathPatch(line.get_path()))
line.remove()

在您的情况下,为了获取笛卡尔坐标,0步应为:

ellip_coords=Ellipse((x,y),100,100,fill=False).get_verts()