1

使用 ggplot 我试图绘制两行值。所以 var0 的值为 49,5,20 为 "Monday" , "Tuesday" , "Wednesday" 并且 var1 的值为 49,1,20 为 "Monday" , "Tuesday" , "Wednesday"

这是代码:

test_data <- data.frame(
var0 = c(49, 5, 20),
var1 = c(49, 1, 10),
days = c("Monday" , "Tuesday" , "Wednesday"))

ggplot(test_data, days)
geom_line(y = var0, colour = "var0")
geom_line(y = var1, colour = "var1")

以下是错误:

> ggplot(test_data, days)
Error in inherits(mapping, "uneval") : object 'days' not found
> geom_line(y = var0, colour = "var0")
Error in do.call("layer", list(mapping = mapping, data = data, stat = stat,  : 
  object 'var0' not found
> geom_line(y = var1, colour = "var1")
Error in do.call("layer", list(mapping = mapping, data = data, stat = stat,  : 
  object 'var1' not found

我是否正确设置了数据?

4

1 回答 1

4

您的代码中有几个错误 - x 和 y 值应该放在aes()调用中,然后在和调用+之间缺少符号。ggplot()geom_line()

如果您需要绘制两组 y 值,我建议,首先,融化您的数据,然后绘制融化的数据框。使用融化的数据,您只需要一次geom_line()调用,您可以根据variable图例中显示的设置每条线的颜色。

library(reshape2)
test_data2<-melt(test_data,id.vars="days")
test_data2
       days variable value
1    Monday     var0    49
2   Tuesday     var0     5
3 Wednesday     var0    20
4    Monday     var1    49
5   Tuesday     var1     1
6 Wednesday     var1    10
ggplot(test_data2,aes(days,value,color=variable,group=variable))+geom_line()

在此处输入图像描述

于 2013-04-21T11:35:42.657 回答