R 在ggplot中从同一数据框打印多个变量

R 在ggplot中从同一数据框打印多个变量,r,ggplot2,R,Ggplot2,我有一个数据集,可以这样定义: Week <- c("2015_52", "2016_01", "2016_02", "2016_03", "2016_04") y1 <- runif(5, 0, 1) y2 <- runif(5, 0, 1) y3 <- runif(5, 0, 1) df <- data.frame(Week, y1, y2, y3) …如中所示,在eval(expr、envir、enclose)中给出错误错误:未找到对象“value” 但是试

我有一个数据集,可以这样定义:

Week <- c("2015_52", "2016_01", "2016_02", "2016_03", "2016_04")
y1 <- runif(5, 0, 1)
y2 <- runif(5, 0, 1)
y3 <- runif(5, 0, 1)
df <- data.frame(Week, y1, y2, y3)
…如中所示,在eval(expr、envir、enclose)中给出错误
错误:未找到对象“value”

但是试着回答

…给出了错误
geom_路径的三个实例:每组仅由一个观察值组成。你需要调整团队吗

美学?
。我能得到一些帮助吗?

事实上这正是你真正想要的,我想:

library(ggplot2)
library(reshape2)

set.seed(123)
Week <- c("2015_52", "2016_01", "2016_02", "2016_03", "2016_04")
y1 <- runif(5, 0, 1)
y2 <- runif(5, 0, 1)
y3 <- runif(5, 0, 1)
df <- data.frame(Week, y1, y2, y3)

mdf <- melt(df,id.vars="Week")

ggplot(mdf, aes( x=Week, y=value, colour=variable, group=variable )) + 
  geom_line() +
  scale_color_manual(values=c("y1"="black","y2"="red","y3"="orange")) +
  scale_linetype_manual(values=c("y1"="solid","y2"="solid","y3"="dashed"))
屈服:


事实上,这才是你真正想要的我认为:

library(ggplot2)
library(reshape2)

set.seed(123)
Week <- c("2015_52", "2016_01", "2016_02", "2016_03", "2016_04")
y1 <- runif(5, 0, 1)
y2 <- runif(5, 0, 1)
y3 <- runif(5, 0, 1)
df <- data.frame(Week, y1, y2, y3)

mdf <- melt(df,id.vars="Week")

ggplot(mdf, aes( x=Week, y=value, colour=variable, group=variable )) + 
  geom_line() +
  scale_color_manual(values=c("y1"="black","y2"="red","y3"="orange")) +
  scale_linetype_manual(values=c("y1"="solid","y2"="solid","y3"="dashed"))
屈服:


唯一正确的方法是使用类似于
restrape2
的软件包将数据从宽格式(如您所定义)转换为长格式。学习起来很痛苦,但一旦你这样做了,你就再也不会回头看了。这里有一个很好的答案:谢谢,在搜索时不知怎么错过了这个答案。你有没有可能把它标记正确?唯一正确的方法是用
重塑2
包之类的东西将数据从宽格式(如你定义的)转换为长格式。学习很痛苦,但一旦你学习了,你就永远不会回头。这里有一个很好的答案:谢谢,在搜索时不知怎么错过了那个。你有没有可能把这个标记正确?啊哈!正是字符串类型的Week值导致我出现“每组只包含一个观察值”错误。非常感谢。当然,如果您能给我一张正确的支票,我将不胜感激:)我对周牌还不满意。我正在想办法。好了,开始吧。终于摸索出了
aes.Aha!正是字符串类型的Week值导致我出现“每组只包含一个观察值”错误。非常感谢。当然,如果您能给我一张正确的支票,我将不胜感激:)我对周牌还不满意。我正在想办法。好了,开始吧。最后摸索
aes。
library(ggplot2)
library(reshape2)

set.seed(123)
Week <- c("2015_52", "2016_01", "2016_02", "2016_03", "2016_04")
y1 <- runif(5, 0, 1)
y2 <- runif(5, 0, 1)
y3 <- runif(5, 0, 1)
df <- data.frame(Week, y1, y2, y3)

mdf <- melt(df,id.vars="Week")

ggplot(mdf, aes( x=Week, y=value, colour=variable, group=variable )) + 
  geom_line() +
  scale_color_manual(values=c("y1"="black","y2"="red","y3"="orange")) +
  scale_linetype_manual(values=c("y1"="solid","y2"="solid","y3"="dashed"))
geom_path: Each group consists of only one observation. Do you need to adjust the group
aesthetic?