【问题标题】:ggplot2 - Area plot errorggplot2 - 面积图错误
【发布时间】:2014-03-19 07:44:31
【问题描述】:

我正在尝试按照该问题的答案 (Getting a stacked area plot in R) 中提供的示例使用 ggplot2 创建堆积面积图。 我可以使示例运行良好,但是在实施该方法时出现无法修复的错误。

这是我得到的:

我的数据如下所示:

> head(trial)
   Dates     Day_Night day_propor
1 2013-01-01        N1        553
2 2013-01-01         D        981
3 2013-01-01        N2        866
4 2013-01-02        N1        553
5 2013-01-02         D        982
6 2013-01-02        N2        865

然后我尝试绘制图表。

p1 <- ggplot(trial, aes(x=Dates,y=day_propor,group=Day_Night,fill=var)) + geom_area(position="fill")

然后得到一个错误

p1

Don't know how to automatically pick scale for object of type function. Defaulting to continuous
Error in data.frame(x = c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L,  : 
arguments imply differing number of rows: 1095, 0

该错误似乎表明 data.frame 中的一列是错误的数据类,但我尝试混合和匹配每个可以想到的类。 记录在这里,它们是:

> sapply(trial, class)
  Dates  Day_Night day_propor 
 "factor"   "factor"  "numeric" 

我错过了什么?

【问题讨论】:

    标签: r graph plot ggplot2 area


    【解决方案1】:

    您的数据框中缺少 var 变量。这就是为什么在全局环境中查找它的原因,它代表方差函数。这只是一个复制粘贴错误;以下代码有效。

    ggplot(trial, aes(x=Dates, y=day_propor, group=Day_Night, fill=Day_Night)) +
      geom_area(position="fill")
    

    最后一点,您可能无法将Dates 作为一个因素。转换一个合适的日期时间对象,如POSIXct 可能会有所帮助。

    【讨论】:

    • 非常感谢。有时,一双新鲜的眼睛会让一切变得不同。
    猜你喜欢
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    相关资源
    最近更新 更多