我使用R中的“圆形”包和rose.diag函数创建了位置数据方面的玫瑰图,其中包含N,NE,E等基本方面,总共有8个bin。但是,垃圾箱不会跨越各个方面。换句话说,第一个bin的取值范围是0-45,第二个bin的取值范围是45至90,依此类推,它们以奇怪的方式合并了方面数据。有什么方法可以移动垃圾箱,使0、45、90等位于垃圾箱的中心,而不是边缘吗?

rose.diag(Degrees$Degrees, bins=8,zero=pi/2, units = 'degrees', rotation='clock')

最佳答案

我认为Ben是对的,因为使用rose.diag很难做到这一点,因此这是使用ggplot2的解决方案:

library(ggplot2)
Degrees <- runif(100, 0, 360)
rose <- ggplot(mapping = aes(x = Degrees)) +
  stat_bin(breaks = (0:8 - 0.5)/8 * 360) +
  scale_x_continuous(
    breaks = 0:7/8*360,
    labels = c("N", "NE", "E", "SE", "S", "SW", "W", "NW")
    ) +
  coord_polar(start=-pi/8)
rose



这可能并不理想,因为rose.diag中的所有功能在ggplot2中都不具有简单的等效项。

08-19 23:01