Вопрос: Используйте индекс фактора для построения переменных - PullRequest
0 голосов
/ 03 апреля 2020

Я очень плохо знаком с R, поэтому извините, если это что-то действительно простое. Я посмотрел на несколько шпаргалок и не вижу ничего очевидного.

У меня есть простой набор данных, который имеет дату, температуру и 4 различных фактора (основанных на цветении tree // 1 = "", 2 = "bloom", 3 = "full", 4 = "scatter")

Что я хочу сделать, но не знаю, как это сделать, разбросать график даты и температуры каждого фактора в отдельности.

1 Ответ

1 голос
/ 03 апреля 2020

Один из подходов - использовать ggplot2 с facet_wrap. Во-первых, убедитесь, что вы установили имена уровней фактора Bloom, чтобы графики были с пользой помечены.

Затем мы используем ggplot для построения графика данных и group = с коэффициентом Bloom. Затем мы добавляем facet_wrap с формулой, что . (все остальное) следует сгруппировать по Bloom.

library(ggplot2)
levels(TreeData$Bloom) <- c("None","Bloom","Full","Scatter")

ggplot(TreeData, aes(x=Date,y=Temp,group = Bloom, color = Bloom)) +
   geom_point(show.legend = FALSE) + 
   facet_wrap(. ~ Bloom)

enter image description here

Для вашего комментария, если вам нужны отдельные графики, вы можете использовать базовое подмножество R с TreeData[TreeData$Bloom == "Full",]. Обратите внимание, что «Полный» - это уровень фактора, который мы установили ранее.

ggplot(TreeData[TreeData$Bloom == "Full",], aes(x=Date,y=Temp)) +
  geom_point() + labs(title="Full Bloom")

enter image description here

Данные

set.seed(1)
TreeData <- data.frame(Date = rep(seq.Date(from=as.Date("2019-04-01"), to = as.Date("2019-08-01"), by = "week"),each = 10) , Temp = round(runif(22,38,n=180)), Bloom = as.factor(sample(1:4,180,replace = TRUE)))
...