我试图在我自己的数据上重现ggplot2(http://had.co.nz/ggplot2/coord_polar.html)的Race轨道图。
> y[1:10,]
cd cnt day year
1 2003-10-18 3 291 2003
2 2003-10-20 1 293 2003
3 2003-10-21 1 294 2003
4 2003-10-22 1 295 2003
5 2003-10-23 2 296 2003
6 2003-11-03 1 307 2003
7 2003-11-18 3 322 2003
8 2003-11-20 2 324 2003
9 2003-11-21 6 325 2003
10 2003-11-24 1 328 2003
> q <- ggplot(y, aes(y$day, y$year, fill=y$cnt)) + geom_bar(width = 0.9, position = "fill") + coord_polar(theta="x")
> q
stat_bin: binwidth defaulted to range/30. Use 'binwidth = x' to adjust this.
Error in as.Date.numeric(value) : 'origin' must be supplied
In addition: Warning message:
In cbind(is.na(mmm), is.na(each)) :
number of rows of result is not a multiple of vector length (arg 2)
但我收到此错误,我找不到任何解决方法。 “起源”在哪里?有人能帮我一把吗?谢谢大家。
这里是str(y)的输出:
'data.frame': 2430 obs. of 4 variables:
$ cd :Class 'Date' num [1:2430] 12343 12345 12346 12347 12348 ...
$ cnt : int 3 1 1 1 2 1 3 2 6 1 ...
$ day : num 291 293 294 295 296 307 322 324 325 328 ...
$ year: num 2003 2003 2003 2003 2003 ...
答案 0 :(得分:0)
正如安德里所说,你的错误是不可重现的;也就是说,考虑到10个样本数据点,它似乎在其他人的机器上运行良好。如果我使用稍微不同的代码,我可以重现它,如下所示。
y <- read.table(tc <- textConnection("
cd cnt day year
2003-10-18 3 291 2003
2003-10-20 1 293 2003
2003-10-21 1 294 2003
2003-10-22 1 295 2003
2003-10-23 2 296 2003
2003-11-03 1 307 2003
2003-11-18 3 322 2003
2003-11-20 2 324 2003
2003-11-21 6 325 2003
2003-11-24 1 328 2003"), header = TRUE); close(tc)
y$cd <- as.Date(y$cd, format = "%Y-%m-%d")
q <- ggplot(y, aes(y$day, y$cd, fill=y$cnt)) + geom_bar(width = 0.9, position = "fill") + coord_polar(theta="x")
q
你真的在你的情节中包含cd
作为美学吗?
一些小的风格点:
您无需为y$
调用中的每个变量名称声明aes()
。 ggplot
非常聪明,可以查看您在第一个参数中提供的数据框。
最好不要调用变量q
,因为这已经是一个函数名。