【问题标题】:Error: ggplot2 doesn't know how to deal with data of class list错误:ggplot2 不知道如何处理类列表的数据
【发布时间】:2015-07-14 17:38:56
【问题描述】:

我正在尝试绘制 100 张具有不同 X 和 Y 值的 Excel 数据。而且,我是 R 新手,我一个月前才开始使用它。现在,我正在尝试从 100 张数据中绘制两张数据。我设法使用 XLConnect 将 excel 文件导入到 R 中。并且,从每张纸上串出标题,这样就不会弄乱格式

而且,我写了这个:

ggplot(data, aes(x,y)) + 
+     geom_line(data$Sheet1, aes(x=X, y=Y), colour = "blue")  
+     geom_line(data$Sheet100, aes(x=X, y=Y), colour = "red")

R 工作室给了我这个错误信息:

错误:ggplot2 不知道如何处理类列表的数据

所以最后我尝试了带标题和不带标题的数据。最终,两者都有相同的错误问题。我不知道该怎么办。你能帮帮我吗?

谢谢

更新:问题解决了

p <- ggplot(data$Sheet1, aes(x=X,y=Y)) + geom_point(color='blue')
p
p <- p + geom_point(data= data$Sheet2,aes(x=X,y=Y),color='red')
p
p <- p + geom_point(data= data$Sheet3,aes(x=X,y=Y),color='pink') 
p

并继续添加以分层绘图

【问题讨论】:

  • 您可以提供reproducible example。在此之前,请尝试将您的数据合并到一个数据框中。您可以通过meltunlist 列表将它们放入数据框中。此外,您提供的代码有双加号+ +,这可能会导致错误。

标签: r excel plot ggplot2 xlconnect


【解决方案1】:

如果data 是一个列表,那么您有两个问题。您应该从 ggplot 调用中删除参数,然后确保您在 geom_line 调用中明确使用 data 参数。所以,作为一个可重现的例子:

x<-data.frame(a=1:10, b=1:10)
data<-list(sheet1=x,sheet2=x)
ggplot()+
  geom_line(data=data$sheet2, aes(a,b), size=3, color="red")+
  geom_line(data=data$sheet1, aes(a,b), color="yellow")

【讨论】:

  • 对于data.frame,我的x轴数据从0到15,y轴从0到100范围。所以我把这个 x
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-06
相关资源
最近更新 更多