Нанесите частоты на полярный график, используя угловые данные, ggplot2

Я пытаюсь использовать полярный график для представления частот в соответствии с круговым углом / направлением (0-360 градусов). По какой-то причине у меня возникают проблемы с попыткой определить масштаб графика для представления всех трех углов. На данный момент отображаются только 2 («B» и «C»). Любая помощь будет оценена по достоинству. Заранее спасибо,

library(ggplot2)  

data <- read.table(text = "stat  angle  freq    perc
                   A    1   720 79
                   B    223.5017    121 13
                   C    117.9372    68  7", header=T)

head(data)
str(data)

db<-data

db$stat<-factor(db$stat)
levels(db$stat)

# Plot

bp<-ggplot(db, aes(x = angle, y = perc), fill = factor(stat)) + 
  geom_bar(stat="identity", colour="grey100", aes(fill = factor(stat),  
                                                  width = 16)) + 
  coord_polar(theta="x", start=0) +
  theme_minimal() + ylab("Detections (%)") +
  scale_x_continuous("", lim=c(0,360), breaks = seq(0, 315, 45), 
                   labels = c("N","NE","E","SE","S","SW","W","NW"))

bp2<-bp + theme(panel.grid.major = element_line(colour = "grey60", size=0.45),
                panel.grid.minor = element_line(colour = "grey60", size=0.45)) 

person user1626688    schedule 01.10.2014    source источник


Ответы (1)


Проблема в ширине geom_bar. Следующие работы:

ggplot(db) + 
  geom_bar(stat="identity",
           colour="grey100",
           aes(x = angle, y = perc, fill = stat, width = 2)) + 
  coord_polar() +
  theme_minimal() + 
  ylab("Detections (%)")+
  scale_x_continuous(limits=c(0,360),
                     breaks = seq(0, 315, 45),
                     labels = c("N","NE","E","SE","S","SW","W","NW"))

введите описание изображения здесь

person rnso    schedule 01.10.2014
comment
Проблема, с которой я столкнулся, заключается в том, чтобы установить правильный масштаб для представления углов в полном круге (0-360) и пометить эти углы как направления (например, N, S, W, E и т. Д.). - person user1626688; 01.10.2014
comment
Я все еще думаю, что что-то происходит не так. Когда я пробую другие углы (большая дисперсия от 0/360), я могу использовать большую ширину. Странно, что с этим конкретным углом 1 мне приходится регулировать ширину. - person user1626688; 01.10.2014
comment
При значении 1 проблема также возникает в geom_bar. Будет работать, если вы сохраните значения оси x -20 и т. Д., Что здесь невозможно. - person rnso; 01.10.2014