我正在尝试使用ggplot2按照此问题的答案(Getting a stacked area plot in R)中提供的示例创建堆积区域图。 我可以让这个例子工作得很好但是在实现方法时我得到了一个我无法解决的错误。
这就是我所拥有的:
我的数据如下:
> 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"
我错过了什么?
答案 0 :(得分:0)
您的数据框中缺少var
变量。这就是为什么它在全球环境中被抬头,它代表了方差函数。这只是一个复制粘贴错误;以下代码有效。
ggplot(trial, aes(x=Dates, y=day_propor, group=Day_Night, fill=Day_Night)) +
geom_area(position="fill")
最后请注意,您可能无法将Dates
作为一个因素。转换适当的日期时间对象(如POSIXct
)可能会有所帮助。