matplotlib中带极坐标散点图的Python坐标变换

matplotlib中带极坐标散点图的Python坐标变换,python,matplotlib,coordinate-transformation,polar-coordinates,Python,Matplotlib,Coordinate Transformation,Polar Coordinates,我必须在matplotlib生成的极坐标图上关联HTML可点击地图,因此我需要一种方法将数据坐标转换为图形的像素坐标 本规范改编自: 给 328.00 240.00 354.80 207.69 381.60 175.38 408.40 143.06 435.20 110.75 461.99 78.44 只有位于图形中心的第一个点是正确的。其他人似乎在移动,就好像这个人物是水平伸展的。 此图表示matplotlib(红色)绘制的点和我在坐标下绘制的点: 会发生什么事? 谢谢你的帮助

我必须在matplotlib生成的极坐标图上关联HTML可点击地图,因此我需要一种方法将数据坐标转换为图形的像素坐标

本规范改编自:

328.00  240.00
354.80  207.69
381.60  175.38
408.40  143.06
435.20  110.75
461.99  78.44
只有位于图形中心的第一个点是正确的。其他人似乎在移动,就好像这个人物是水平伸展的。 此图表示matplotlib(红色)绘制的点和我在坐标下绘制的点:

会发生什么事? 谢谢你的帮助

更新日期:2017年8月3日

“拉伸”更奇怪:我试图用以下命令绘制一个八面体,内接在半径为3的圆中:

points, = ax.plot([math.pi/4,math.pi/2,3*math.pi/4,math.pi,5*math.pi/4,3*math.pi/2,7*math.pi/4,2*math.pi],[3,3,3,3,3,3,3,3], 'ro')
结果是同样的程序

495.01  110.70
328.00  57.14
160.99  110.70
91.81   240.00
160.99  369.30
328.00  422.86
495.01  369.30
564.19  240.00

当x轴和y轴上的4个点正确放置时,对应于i*pi/2+pi/4角度(其中i=0,1,2,3)的其他4个点会受到“拉伸”的影响。事实上,即使通过观察它们的坐标也可以看出这一点:对于i=0,2,4,6,应该是真的,|x[(i+4)%8]-x[i]|=|y[(i+4)%8]-y[i]|,但情况似乎并非如此。

这是一个非常棘手的问题,事实证明它已经在这里解决了:

问题在于,当将纵横比设置为相等时,只有在画布上绘制某个对象后,matplotlib才能确定轴的尺寸和位置。在绘制数据之前,它无法知道轴在最终图形中的位置

最简单的解决办法是打电话

fig.canvas.draw()
在plot命令之后但在执行任何转换之前 作品通过这种方式,图形被绘制到画布上,应用 平等方面;从这一点开始,正确的转换是 可用

fig.canvas.draw()