R:使用ggplot2在圆形条形图上添加箭头
我正在尝试使用ggplot2绘制物候图,目前看起来如下: 现在我想添加一个表示平均角度的箭头(用“o=角度”和“r=大小”),如下()。我找到了一种方法,使用geom_vline()和线性插值来添加一条线,以正确的角度绘制它,但我找不到一种方法来修改它的长度并给它一个箭头状的形式 有可能用ggplot2做吗 提前谢谢 这是我的密码R:使用ggplot2在圆形条形图上添加箭头,r,ggplot2,R,Ggplot2,我正在尝试使用ggplot2绘制物候图,目前看起来如下: 现在我想添加一个表示平均角度的箭头(用“o=角度”和“r=大小”),如下()。我找到了一种方法,使用geom_vline()和线性插值来添加一条线,以正确的角度绘制它,但我找不到一种方法来修改它的长度并给它一个箭头状的形式 有可能用ggplot2做吗 提前谢谢 这是我的密码 Mes<-c("Jan", "Feb", "Mar", "Apr", &
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())
Mes使用注释
。使用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())
p使用注释
。使用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())
p