使用ggplot我试图绘制两行值。 因此var0在“星期一”,“星期二”,“星期三”的值为49,5,20 并且var1的值为“星期一”,“星期二”,“星期三”的值为49,1,20
以下是代码:
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
我是否正确设置了数据?
答案 0 :(得分: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()