考虑一下
a1<-data.frame(a=c(1,2,3),b=c(45,34,67),c=c(35,56,89),d=c("first"))
a2<-data.frame(a=c(1,2,3),b=c(35,40,60),c=c(30,59,92),d=c("second"))
a3<-data.frame(a=c(1,2,3),b=c(45,38,57),c=c(35,52,91),d=c("third"))我想使用ggplot制作三个对应于a1、a2和a3的图表/图。每个图表/绘图都应该有x=a和y=b,c。所以每个图表中应该有两行。图表应命名为first、second和third。我该怎么做呢?
我试过了
overall<-list(a1,a2,a3)
plots<-lapply(overall,function(category){o<-melt(category, id = "a", measure = c("b", "c"));
  ggplot(o, aes(a, value, colour = variable)) + geom_line()})但它只生成一个图。理想情况下,我希望看到三个图,每个图包含两条线,分别对应于数据框a1、a2和a3中的b和c。
发布于 2020-02-27 16:31:37
也许更简单一点,也是使用ggplot
library(tidyverse)
df <- bind_rows(a1,a2,a3, .id = "id") %>% 
  gather(`b`, `c`, key = "values", value = "value")
  ggplot(df, aes(a, value, colour = name)) + 
  geom_line() +
  facet_wrap(~id, labeller = labeller(id = c(`1` = "first", `2` = "second", `3` = "third")))

https://stackoverflow.com/questions/60428339
复制相似问题