Как построить циклический график на X-Y графике - PullRequest
0 голосов
/ 30 мая 2019

Не уверен, как правильно это сформулировать.У меня есть данные долготы, которые иногда идут от -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 ]

1 голос
/ 30 мая 2019

Вы можете использовать встроенный в Numpy метод unwrap после преобразования ваших угловых данных в радианы.Он будет автоматически добавлять 2 * пи каждый раз, когда ваши данные пересекают от -180 до 180.

0 голосов
/ 12 июня 2019
    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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...