Как изменить бункеры выборки для графиков Роза ветров в Python?

Я рисую сюжет розы ветров, используя библиотеку под названием windrose. Все работает отлично, кроме одной части. Вот пример:

from windrose import WindroseAxes
from matplotlib import pyplot as plt
import matplotlib.cm as cm
import numpy as np

# Create wind speed and direction variables

ws = np.random.random(500) * 6
wd = np.random.random(500) * 360

ax = WindroseAxes.from_ax()
ax.bar(wd, ws, normed=True, opening=0.8, edgecolor='white')
ax.set_legend()

И на основе данных, которые у меня есть в df, я получаю такой график:

Как изменить бункеры выборки для графиков Роза ветров в Python?

Однако желаемый результат для тех же данных должен выглядеть так:

Как изменить бункеры выборки для графиков Роза ветров в Python?

В чем разница? Итак, если вы посмотрите на первый рисунок, вы увидите, что интервалы градусов не начинаются с 0 градусов. Фактически, если вы посмотрите на полосу на N, вы увидите, что она уменьшена вдвое. Однако вторая цифра начинается точно с 0 градусов, а первая полоса начинается точно с N.

Есть ли способ сдвинуть бункеры в windrose так, чтобы они начинались точно с 0 градусов?

Обновлено: Я обновил приведенный выше код, сделав его простым проверяемым образцом. Обратите внимание, что рисунки не обязательно демонстрируют график, нарисованный с использованием кода (из-за генерации случайных чисел), однако его можно использовать как способ продемонстрировать то, что я ищу.

Можете ли вы добавить несколько примеров данных из df? Как выражается ваш угол в радианах, градусах, гониометрических градусах?

jlandercy 10.12.2018 20:57

Я не думаю, что в настоящее время есть возможности сделать это с помощью надстройки «Роза ветров». Кажется, вам придется отредактировать код самостоятельно. Хотя такое деление кажется глупым, есть ли особая причина?

SuperStew 10.12.2018 21:01

Читая документ (windrose.readthedocs.io/en/latest/…), кажется, что в данный момент это невозможно

jlandercy 10.12.2018 21:03

Я бы не сказал, что это невозможно. Но действительно нужен минимальный воспроизводимый пример (рабочий код) для проверки возможных решений.

ImportanceOfBeingErnest 10.12.2018 21:21

@ImportanceOfBeingErnest Я бы скорее имел в виду «еще не разработан в текущей реализации функции». Но да, мне все еще интересно, чтобы минимальный воспроизводимый пример проверял, есть ли хак с этой генерацией фигур.

jlandercy 11.12.2018 09:46

Редактирую вопрос для минимального примера. Спасибо.

Moh 11.12.2018 18:38

@ImportanceOfBeingErnest да, я считаю, что это не предусмотрено в коде, но было бы здорово, если бы можно было предложить хак, который позволяет это сделать. Спасибо.

Moh 11.12.2018 18:42

Ммм, я просмотрел исходный код, и проблема в том, что это объединение предполагается в нескольких местах. Так что простого взлома не существует. Можно обезьяно исправить функцию histogram, а также функцию _init_plot. В общей сложности это потребовало бы большего количества строк кода, чем рисование желаемого графика вручную с помощью matplotlib.

ImportanceOfBeingErnest 11.12.2018 21:04
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
8
2 133
0

Другие вопросы по теме