使用ggplot2在一个R图中绘制多条线

时间:2016-01-27 23:13:32

标签: r plot ggplot2

我正在尝试使用ggplot2在一个R图中绘制多行,但我遇到了问题而我无法做到。这是我的第一个问题。我正在学习如何使用R studio及其包装,所以我不太了解它,所以请耐心等待。这是我写的代码:

library(ggplot2) 
x <- 1:10
y1 <- dati.m$With.no.educational.qualifications
y2 <- dati.m$Compulsory.education..1st.cycle
y3 <- dati.m$Compulsory.education..2nd.cycle
y4 <- dati.m$Compulsory.education..3rd.cycle
y5 <- dati.m$Upper.secondary.education
y6 <- dati.m$Higher.education
df <- dati.m(x, y1, y2, y3, y4, y5, y6)
ggplot(df, aes(x)) +
  geom_line(aes(y=y1),
            colour="red") +
  geom_line(aes(y=y2),
            colour="green") +
  geom_line(aes(y=y3),
            colour="blue") +
  geom_line(aes(y=y4),
            colour="yellow") +
  geom_line(aes(y=y5),
            colour="orange") +
  geom_line(aes(y=y6),
            colour="black")

但是当我执行它时,我收到一个错误:

  

错误:美学必须是长度1或与数据相同(17):y,x

1 个答案:

答案 0 :(得分:2)

我将df <- dati.m(x, y1, y2, y3, y4, y5, y6)替换为df <- data.frame(x, y1, y2, y3, y4, y5, y6)

如果您使用此代码:

library(ggplot2) 
x <- 1:10
y1 <- 1:10
y2 <- 2:11
y3 <- 3:12
y4 <- 4:13
y5 <- 5:14
y6 <- 6:15
df <- data.frame(x, y1, y2, y3, y4, y5, y6)
ggplot(df, aes(x)) +
        geom_line(aes(y=y1),
                  colour="red") +
        geom_line(aes(y=y2),
                  colour="green") +
        geom_line(aes(y=y3),
                  colour="blue") +
        geom_line(aes(y=y4),
                  colour="yellow") +
        geom_line(aes(y=y5),
                  colour="orange") +
        geom_line(aes(y=y6),
                  colour="black")

你会得到这个:

enter image description here