不同年份类别的ggplot

时间:2014-03-03 11:45:10

标签: r ggplot2

我真的在与R中的情节挣扎。我必须在男性的同一情节中制作logmx与不同年份男性年龄的情节。在这个图中,“1870-1879”,“1940-1949”,“1960-1969”,“1980-1989”必须有4行。 我用这些特定的年份制作了4个不同的子集,并尝试将它们组合起来,但我是R的新手,我不知道我做错了什么。我看到很多类似的答案,但我无法解决它。我需要用ggplot2包来制作它。

males11<-males[445:1555,1:3]
males12<-males[4885:5995, 1:3]
males13<-males[9325:10435, 1:3]
males14<-males[13765:14653, 1:3]#为子集

d1 <- data.frame(males11$Age, log(males11$mx), males11$Year)
d2 <- data.frame(males12$Age, log(males12$mx), males12$Year)
d3 <- data.frame(males13$Age, log(males13$mx), males13$Year)
d4 <- data.frame(males14$Age, log(males14$mx), males14$Year)

ggplot()
 +   geom_line(aes(males11$Age, log(males11$mx), colour=males11$Year), d1) +
  geom_line(aes(males12$Age, log(males12$mx), colour=males12$Year), d2) +
  geom_line(aes(males13$Age, log(males13$mx), colour=males13$Year), d3) +
  geom_line(aes(males14$Age, log(males14$mx), colour=males14$Year), d4)

1 个答案:

答案 0 :(得分:0)

您应该在原始数据框架中构建一个因子,然后将其分组,类似于:

males$group <- cut(males$Year, 
                   breaks=seq(1799, 2099, 10), 
                   dig.lab=4)
library(ggplot2)
ggplot(males[males$group %in% c("(1869-1879]", "(1939-1949]", "(1959-1969]", "(1979-1989]"), ], 
       aes(Age, mx, colour=group)) + 
  geom_line() + 
  scale_y_log10()