如何使用R包循环在360上制作直方图数据的玫瑰图。

时间:2016-08-18 18:02:51

标签: r graph

我对R(或任何类型的编码)缺乏经验,但我正在尝试使用包循环来制作玫瑰图,用于来自单元格的方向数据。基本上,我已经为这些细胞的方向创建了一个直方图,现在我想在圆形图上绘制这些数据,以显示“x”细胞类型更倾向于“y”细胞类型。 我需要将数据放在度数图上,而不是默认的pi。 有人可以帮我吗?我还没有找到任何可以插入我的数据的东西,只是很多气象代码没有用的风玫瑰图。就像我说的那样,非常新鲜。

1 个答案:

答案 0 :(得分:8)

这是第一次尝试。假设您的数据位于我在下面重新创建的数据框d中(为Angle = 250添加了一行,上面的评论中似乎没有这一行):

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, 260, 270, 280, 290, 300, 310, 320, 330, 340, 350, 250
), Frequency = c(0, 0, 0.001, 2, 4, 18.03, 11, 12, 5, 7, 10, 
13, 2, 0.003, 0.01, 0, 1, 0.05, 2, 3, 3.7, 6, 0, 0, 0, 0, 0.2, 
0.006, 0, 0, 0, 0, 0, 0, 0, 0)), .Names = c("Angle", "Frequency"
), row.names = c(NA, 36L), class = "data.frame")
str(d)
# 'data.frame': 36 obs. of  2 variables:
#  $ Angle    : num  0 10 20 30 40 50 60 70 80 90 ...
#  $ Frequency: num  0 0 0.001 2 4 ...

我们可以使用ggplot

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

enter image description here