многострочный ggplot по строкам и столбцам с легендой + sd - PullRequest
0 голосов
/ 16 июня 2019

У меня есть 2 data.frame:

data_mean:

 territory_1 territory_2 territory_3 territory_4 territory_5 territory_6 territory_7 territory_8 territory_9
season_1   0.04548814  0.03679184  0.04804329  0.01774598   0.1873583  0.03798713  0.02515220  0.04006423   0.2460139
season_2   0.07529072  0.08048696  0.06041415  0.03461997   0.1473725  0.04371079  0.02451824  0.03729869   0.2325734
season_3   0.19094684  0.05399267  0.09108074  0.05326579   0.1107565  0.04996543  0.02944363  0.04424125   0.2061001
season_4   0.16393195  0.02916149  0.05763407  0.03526731   0.1212815  0.05466920  0.02825975  0.06150540   0.2232308
season_5   0.08309387  0.05862481  0.07578285  0.03620725   0.1433460  0.07038242  0.03102652  0.05434440   0.1553574

и data_SD:

territory_1 territory_2 territory_3 territory_4 territory_5 territory_6 territory_7 territory_8 territory_9
season_1  0.009414762 0.009205625 0.003816925 0.002548717  0.01475648 0.003631448 0.001490306 0.002462043 0.007583638
season_2  0.024247471 0.016402706 0.004980897 0.004745206  0.01393021 0.004178247 0.001597244 0.002553933 0.007538909
season_3  0.030626971 0.012865086 0.006913778 0.005980786  0.01313423 0.004754663 0.001875462 0.002952610 0.007434868
season_4  0.034040440 0.009705439 0.004927881 0.004330766  0.01350788 0.004751983 0.001753364 0.003384793 0.007406657
season_5  0.020016015 0.014591767 0.005815301 0.004232419  0.01499951 0.005411255 0.001875151 0.003234048 0.006308964

Я хочу нарисовать один ggplot Y = значения, X= времена года и одна линия для одной территории с разным цветом линии по территории (цвет (территория)) + нарисовать область между Sd inf и Sd sup.И я хочу нарисовать другой ggplot: xggplot по xterritory + область между Sd inf и Sd sup.

Спасибо за помощь!

1 Ответ

2 голосов
/ 16 июня 2019

Самый эффективный способ работы с ggplot - преобразовать ваши данные в длинную форму, обычно в один фрейм данных.Ниже я использую dplyr::left_join и tidyr::gather для преобразования и объединения двух предоставленных таблиц в форму, с которой лучше всего работает ggplot.

library(tidyverse)
data_combined <-
  left_join(
    data_mean %>% gather(territory, mean, -season),
    data_SD %>% gather(territory, SD, -season)
  )

Тогда довольно просто назначить разные столбцы для различной эстетикиграфик:

ggplot(data_combined,
       aes(x = season, y = mean, color = territory, group = territory)) +
  geom_ribbon(aes(ymin = mean - SD, ymax = mean + SD, fill = territory), 
              alpha = 0.3, color = NA) +
  geom_line()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...