ggplot2错误中的玫瑰图:美学必须是长度1或与数据

时间:2016-08-24 15:06:38

标签: r ggplot2

我试图在ggplot2中制作玫瑰图。我以前使用以下代码制作了一个,但我已经替换了不同的数据,现在它给了我一个错误。有没有人看到我不喜欢的东西? 谢谢

以下是数据:

> d <- structure(list(Angle = c(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 
+ 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 
+ 230, 240, 250, 260, 270, 280, 290, 300, 310, 320, 330, 340, 350, 360
+ ), Frequency = c(0.3, 1.5, 1.6, 1.9, 2.4, 3.1, 9.6, 5.6, 5.8, 5.6, 8.8, 4, 9, 7.5, 4.6, 2.5, 1.3, 3.3, 0.5, 0.5, 0.3, 2.2, 1.1, 0.5, 1.9, 2.2, 1.1, 0.3, 0, 1.7, 1.6, 2.8, 0.7, 0.7, 1.9, 0, 0)), .Names = c("Angle", "Frequency"
+ ), row.names = c(NA, 36L), class = "data.frame")
> str(d)

这是我以前用来创建玫瑰图的代码:

> library(ggplot2)
> ggplot(d, aes(x = Angle, y = Frequency)) +
+   coord_polar(theta = "x", start = -pi/36) +
+   geom_bar(stat = "identity") +
+   scale_x_continuous(breaks = seq(0, 360, 60))

我收到的确切错误是:

  

错误:美学必须是长度1或与数据相同   (36):x,y

1 个答案:

答案 0 :(得分:0)

这似乎是由于您的数据有37个条目,但您的row.names设置为36,导致R做出一些猜测。如果您在数据规范中将36L更改为37L(在row.names下),则此操作就像输入一样。