Объединение двух линейных графиков из разных двух фреймов данных - PullRequest
0 голосов
/ 01 декабря 2019

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

Ниже приведен пример моего фрейма данных для шести видов

 Week       Species      Unit
   1           A           13
   1           B           24
   2           B           15
   2           C           32
   3           C           43
   4           D           32

Ниже приведен код, который я использовал для создания линейного графика, показывающего сокращение шести видов

Species_Change<-ggplot(Total_Count, aes(x=Week, y=Unit, group=Scientific.name, color=Scientific.name)) +
  geom_point()+
  geom_line()+
  scale_colour_manual(values = c("yellow", "orange 2", "purple", "maroon 2", "blue", "purple 4","green"))+
  ylab("Total number of floral units over the four habitats")+
  xlab("Sampling round")+
  labs(col="Plant species")

Ниже приведен образец фрейма данных, показывающий общее количество всех видов за период выборки

Week           Unit
 1              32
 2              55
 3              73
 4              62

Ниже показан код, использованный для создания второй линейной диаграммы, показывающей общее количество всехвиды на этапах отбора проб

Total_Change<-ggplot(Total_Round, aes(x=Week, y=Unit, )) +
  geom_point()+
  geom_line()+
  ylab("Total number of floral units over the four habitats")+
  xlab("Sampling round")+
  labs(col="Plant species")

1 Ответ

1 голос
/ 01 декабря 2019

Я не уверен, что это именно то, что вам нужно, но вы можете добавить новый вид под названием "total" к вашему Total_count data.frame. Используя предоставленные вами данные:

Данные
dput(Total_Count)
structure(list(Week = c(1L, 1L, 2L, 2L, 3L, 4L), Species = structure(c(1L, 2L, 2L, 3L, 3L, 4L), .Label = c("A", "B", "C", "D"), class = "factor"), Unit = c(13L, 24L, 15L, 32L, 43L, 32L)), row.names = c(NA, -6L), class = "data.frame")
dput(Total_Round)
structure(list(Week = c(1, 2, 3, 4), Unit = c(32, 55, 73, 62)), class = "data.frame", row.names = c(NA, -4L))
Код
Total_Round$Species <- factor(rep("Total",nrow(Total_Round))) # Create total species
df <- rbind(Total_Count, Total_Round) # Merge both data.frames
AllwithTotal_Species_Change<-ggplot(df, aes(x=Week, y=Unit, group=Species, color=Species)) +
  geom_point()+
  geom_line()+
  scale_colour_manual(values = c("yellow", "orange 2", 
                                 "purple", "maroon 2", 
                                 "blue", "purple 4",
                                 "green"))+
  ylab("Total number of floral units over the four habitats")+
  xlab("Sampling round")+
  labs(col="Plant species")
AllwithTotal_Species_Change

plotresult

Надеюсь, это поможет!

...