Прорисовка персонажей - PullRequest
1 голос
/ 30 января 2020

Я действительно новичок в R (3-я неделя). Я пытаюсь построить набор данных, который состоит из 10 участков, до 16 участков на участок, на 3 разных глубинах почвы. Результаты моей выборки высокие, средние и низкие для 2 электронных рецепторов DO и NO3. Я хочу построить результаты для каждого участка / участка для каждой глубины почвы. Можно сделать отдельно, но если есть способ сложить несколько графиков, это было бы здорово! (Вероятно, очень продвинутый, хотя.) Вот пример моего набора данных.

Site Plot DO(1m) DO(3m) DO(5m) 
A     1     H     H      H    
A     2     H     H      M 
A     3     H     L      H 
A     4     H     H      L 
A     5     M     H      H
A     6     L     H      M

До сих пор я пытался:

plot(factor(Plot),Site) 
plot(Plot~factor(Site),DO 1m 

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

1 Ответ

0 голосов
/ 30 января 2020

Основываясь на ваших данных, я думаю, что хорошим способом представить это будет «тепловая карта». Сначала мы можем перевести ваши данные в более длинный формат (для этого я использовал pivot_longer из tidyr), затем мы можем использовать geom_tile из ggplot, чтобы создать тепловую карту оценки каждого DO на основе их сюжет.

Преимущество этого представления заключается в том, что, поскольку мы приписываем показатель в качестве значения заполнения, он автоматически создает цветовую схему в ggplot2. Итак, нам не нужно конвертировать символьный формат в числовой формат. Если вы хотите изменить цветовой рисунок, вы можете использовать scale_fill_manual.

. Вы можете написать что-то вроде этого:

library(tidyr)
library(ggplot2)
library(dplyr)
df %>% pivot_longer(.,-c(Site, Plot), names_to = "DO",values_to = "Score") %>%
  ggplot(aes(x = as.factor(Plot), y = DO, fill = Score))+
  geom_tile(color = "black")+
  geom_text(aes(label = Score))+
  scale_y_discrete(labels = c("1m","2m","5m"))+
  labs(x = "Plot", title = "Site A")

enter image description here

Это выглядит так, как вы ожидаете?

Пример данных

structure(list(Site = c("A", "A", "A", "A", "A", "A"), Plot = 1:6, 
    `DO(1m)` = c("H", "H", "H", "H", "M", "L"), `DO(3m)` = c("H", 
    "H", "L", "H", "H", "H"), `DO(5m)` = c("H", "M", "H", "L", 
    "H", "M")), row.names = c(NA, -6L), class = c("data.table", 
"data.frame"), .internal.selfref = <pointer: 0x56276b4f1350>)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...