繁体   English   中英

R:使用 ggplot2 在圆形条形图上添加箭头

[英]R: Add a arrow on a circular barplot with ggplot2

我正在尝试使用 ggplot2 制作物候图,目前看起来像这样: Circular barplot

现在我想添加一个表示平均角度的箭头(“o = 角度”和“r = 幅度”),如下图所示Dahua-Machoa 等人,2018 年,第 70 页)。 我找到了一种方法来使用 geom_vline() 和线性插值来添加一条线,以正确的角度绘制它,但我找不到一种方法来修改它的长度并给它一个类似箭头的形式。

可以用 ggplot2 来做吗?

提前致谢。

这是我的代码。

   Mes<-c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov"
      , "Dec")
mess<-(seq(1,12,1))
FlbudBr<-c(0,12,25,44,32,5,12,1,4,56,11,10)
dg<-c(15, 45,75,105,135,165,195,225,255,285,315,345)
data<-data.frame(Mes,mess,FlbudBr,dg)
library(NISTunits)
data$cos<-cos(NISTdegTOradian(data$dg))
data$sin<-sin(NISTdegTOradian(data$dg))
x<-sum(data$FlbudBr*data$cos)/sum(data$FlbudBr)
y<-sum(data$FlbudBr*data$sin)/sum(data$FlbudBr)
r<-sqrt((x)^2+(y)^2)
o<-180-NISTradianTOdeg(acos(x/r))

library(ggplot2)
library(ggthemes)


ggplot(data, aes(mess, FlbudBr)) +
  coord_polar() +
  geom_bar(stat = "identity", fill = "#F8C471", color ="black", width = 0.8) +
  scale_x_continuous(breaks = 1:12, labels = data$Mes, expand = c(.007,0)) +
  geom_hline(yintercept = seq(0, 15, by = 5), color = "gray90", alpha= 0.4) +
  geom_vline(xintercept= ((139.57-135)/(150-135)*(5.5-5)+5))+
  ylab("Fl bud Br")+
  theme_bw()+
  theme(panel.grid.minor = element_blank(), axis.title.x = element_blank(), 
        panel.border = element_blank())

使用annotate 使用yend指定行长度。 arrow = arrow()将添加箭头。

p <- ggplot(data, aes(mess, FlbudBr)) +
  coord_polar() +
  geom_bar(stat = "identity", fill = "#F8C471", color ="black", width = 0.8) +
  scale_x_continuous(breaks = 1:12, labels = data$Mes, expand = c(.007,0)) +
  geom_hline(yintercept = seq(0, 15, by = 5), color = "gray90", alpha= 0.4) +
  ylab("Fl bud Br")+
  theme_bw()+
  theme(panel.grid.minor = element_blank(), axis.title.x = element_blank(), 
        panel.border = element_blank())
arrow_x <- ((139.57-135)/(150-135)*(5.5-5)+5)

p + annotate(
  "segment",
  x = arrow_x,
  xend = arrow_x, 
  y = 0,
  yend = 25,
  colour = "red",
  size = 1,
  arrow = arrow()
)

阴谋

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM