R图用多行ggplot

时间:2016-07-14 19:49:24

标签: r plot ggplot2

我有一个这样的数据框:

dput(data)

structure(list(Anno = c(2015L, 2014L), Gennaio = c(381, 270.9
), Febbraio = c(355, 266.75), Marzo = c(352, 285.5), Aprile = c(323, 
288), Maggio = c(296, 288), Giugno = c(307, 276.17), Luglio = c(340, 
298.75), Agosto = c(335, 307.5), Settembre = c(304, 307.5), Ottobre = c(283, 
342.5), Novembre = c(281, 401.25), Dicembre = c(274, 387.5)), .Names = c("Anno", 
"Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", 
"Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"
), class = "data.frame", row.names = c(NA, -2L))

我想用多条线绘制这个图,按年(Anno)计算。我怎样才能做到这一点?像这样的东西: enter image description here

我试过了:

data.melted <- melt(data, id.vars="Anno", value.name="Mese", variable.name="Anno")
ggplot(data=data.melted, aes(x=Anno, y=Mese, group = Anno, colour = Anno)) +
+     geom_line() +
+     geom_point( size=4, shape=21, fill="white")

但是我收到了这个错误:

Error in eval(expr, envir, enclos) : oggetto "Mese" non trovato

1 个答案:

答案 0 :(得分:1)

试试这个:

library(reshape2)
library(ggplot2)
library(dplyr)

melt(data, "Anno", variable.name = "Mese") %>%
    ggplot(aes(x=Mese, y = value, color = as.factor(Anno))) + 
    geom_point(size=4, shape=21, fill="white") +
    geom_line(aes(group = Anno))

使用dplyr %>%运算符的管道当然是可选的。您可以像在代码中一样保存中间步骤。

结果如下: enter image description here