我想把一个矩形图(图)变成这样的圆形图:
现在,我并不是真的想转换一个实际的图形图表,我只是在尝试转换底层数据:(x,y)坐标。在
我的数据集的时间间隔是相等的,所以它只是一个y坐标的列表,如下所示(其中x表示以偶数速率递增):
[11,16,12,14,13,12,13,10...]
我想像图中那样把它绕在中心,这样它就会变异成这样:(在这里估计一下):
[(0,11)、(3,14)、(8,8)、(13,4)…]
我不知道,我想这更像是一个椭圆形的东西,不管怎样,重点是我只想把矩形图的末端绕起来,这样它就回到x = 0
然后有一个新的坐标作为(x,y)对,其中(0,0)是圆的中心。在
我不知道这种转换叫做什么,也不知道是否有python包已经这样做了。再说一次,我并不是在寻找像这样的绘图软件:https://matplotlib.org/examples/pylab_examples/polar_demo.html我只想要一个函数,它接受点,然后计算,然后返回新的坐标。在
有人知道有这样的包裹吗?在
或者,如果一个不存在,有人知道我需要做什么样的数学,或者用什么公式来计算?在
更新:对答案的响应。在
感谢你们的回答和指导,莱布隆·马斯克和加塞姆·纳达夫,你们都建议把它绕在极地区域。我试着执行你的建议,但没能得到我想要的。为了简化操作,我更改了演示数据集。在
^{pr2}$此结果打印出以下new_data
:
{'x': [0.0, 0.7853981633974483, 1.5707963267948966, 2.356194490192345, 3.141592653589793, 3.9269908169872414, 4.71238898038469, 5.497787143782138], 'y': [6.25, 6.875, 7.5, 8.125, 10.0, 8.125, 7.5, 6.875]}
它打印的图像是:
注意极坐标表示法不是我要找的。数据上升到峰值然后回落。如果我用手画一个圆形的图形,它看起来像这样:
看离中心的点怎么变成Y距离了吗?但是X从range(0,8)
变成了一组围绕中心旋转的正数和负数。我需要用np.sin()
来得到这个结果吗?看来极坐标图是不够的。在
我想你想要的和这篇文章有关:
https://math.stackexchange.com/questions/260096/find-the-coordinates-of-a-point-on-a-circle
^{pr2}$radius
是你的y
变量,你的θ
必须来自于一个圆除以数据集中的点数。在为了验证得到的点与中心(y)的距离是否正确,可以遵循公式
sqr(x) + sqr(y) = sqr(r)
,你会看到它是正确角度的正确距离。在代码如下:
相关问题 更多 >
编程相关推荐