如何在x-y图上绘制循环图

时间:2019-05-30 20:42:17

标签: python plot graph

不确定如何正确表达此词。我有经度数据,例如,连续数据点有时会从-150变为150。我想用图形表示最小的差异。 因此,对于点x1 = -150和点x2 = 150,最小差实际上仅是60,因为到达-180后,它会翻转符号并计数到150(与从-150到0的另一种方法相反,然后从0到150,相差300)。 考虑到数据的最小值和最大值(例如,-140和160),我想创建一个图形,其中y轴会像这样(从上到下):

[160, 170, +-180, -170, -160, -150, -140]

所以这是我的图表: enter image description here

这是我将所有大跃迁转换为小跃迁的方法: enter image description here

但是,我希望y轴的值不小于-180。取而代之的是,我希望它返回正数,所以它更准确(因此,低于-180时,它将变为179、178等)。

2 个答案:

答案 0 :(得分:1)

将角度数据转换为弧度后,可以使用numpy的内置unwrap method。每次数据从-180到180时,它将自动添加2 * pi。

答案 1 :(得分:0)

    def normalize(l):
        l2 = [l[0]]
        for i in range(1, len(l)):
            diff = (l[i] - l2[i-1])%360
            if diff != 0:
                diff2 = diff - (diff/abs(diff))*360
            if abs(diff2) < abs(diff):
                diff = diff2
            l2.append(l2[i-1] + diff)
        return l2