Я хочу нарисовать диаграмму розы некоторых круговых данных. Я использую пакет circular
, и в этом пакете он позволяет нарисовать простую диаграмму розы с помощью функции: rose.diag
. Хотя это рисует диаграмму, я хочу усовершенствовать сюжеты, но я не могу найти, чтобы добавить к сюжету или немного настроить его. Я просмотрел его в ggplot2
, но мне это не кажется ясным, и я изо всех сил пытаюсь найти еще один пакет в R, который рисует диаграммы розы, подобные этому. Если кто-то может помочь с этим, я был бы признателен услышать ваши ответы.Роза диаграмма в R
я выкладываю образец данных и мой текущий код ниже вместе с моими запросами:
Angle
0.65454759
0.01355458
0.5052027
0.2264302
-0.350552
-0.428481
0.1231778
0.258787
0.06723504
0.06906181
2.54608572
-1.6591672
3.00437314
-0.0503291
-0.828578
-1.9616418
-0.6468774
0.01438686
0.1162713
0.9938797
0.1861583
0.1547071
0.2577813
0.5110576
0.08714113
Эти данные являются Радиан углы поворота. Используя circular
пакет я делаю эти данные вектора класса circular
:
x <- circular(Angle)
Затем нарисуйте схему розы, используя следующий код, где он вычерчивает диаграмму в градусах и не радианы:
rose.diag(x, pch = 16, cex = 1, axes = TRUE, shrink = 1, col=3, prop = 2,
bins=36, upper=TRUE, ticks=TRUE, units="degrees")
Есть 3 вещи, которые я хотел бы добавить к этому участку:
- Измените ориентацию участка так, чтобы 0 был сверху, а не справа.
- Добавьте концентрические круги в сюжет, чтобы помочь с визуальной интерпретацией размера и веса каждого из «бункеров».
- Добавить строку, чтобы определить средний угол (с погрешностями сд, если это возможно)
Это здорово, спасибо. Я не понял, что есть «нулевой» аргумент. Есть еще два вопроса: возможно ли рисовать оси x и y (присоединение от 0 до 180 и от 90 до 270)?Также есть ли у вас какие-либо идеи о том, как добавить круговые полосы ошибок в среднюю строку? – James
Команда сегментов может рисовать любую прямую линию. Вам нужно выяснить уравнение для вашей кривой идеи. Вы определяете начальную и конечную точки в терминах углов, а затем просто вычисляете на основе угла и радиуса ряд эвклидовых точек. Итак, если угол идет от 2-3, то просто вычислите 20 точек в этом диапазоне углов. Используйте сегменты, чтобы затем нарисовать все маленькие линии. – John
Хорошо, отлично. Спасибо за вашу помощь в этом. – James