R 如何在置信区间图中添加质点
我正在使用R 如何在置信区间图中添加质点,r,ggplot2,R,Ggplot2,我正在使用dotswiber包中的dwplot函数来绘制估计系数。代码如下 oz.dy.1 <- dwplot(td.oz.1, vline = geom_vline(xintercept = 0.0, colour = 'grey60', linetype = 'dashed'), dot_args = list(aes(shape = model), size = 3)) %>% relabel_predictors(c('6'='6','
dotswiber
包中的dwplot
函数来绘制估计系数。代码如下
oz.dy.1 <- dwplot(td.oz.1, vline = geom_vline(xintercept = 0.0, colour = 'grey60', linetype = 'dashed'),
dot_args = list(aes(shape = model), size = 3)) %>%
relabel_predictors(c('6'='6','5'='5','4'='4','3'='3','2'='2','1'='1',
'-2'='-2','-3'='-3','-4'='-4','-5'='-5')) +
xlab('Estimated Cofficients') + ylab('Leads and lags') +
ggtitle('Panel A') +
theme_classic() +
theme(plot.title = element_text(size = 16, hjust = 0.5),
axis.title.x = element_text(size = 13),
axis.title.y = element_text(size = 13),
axis.text.x = element_text(size = 13),
axis.text.y = element_text(size = 13),
legend.position = c(0.2,0.2)) +
coord_flip()
我尝试了注释
,并修改了绘图代码,如下所示。请注意,y
是字符。问题在于注释将顺序弄乱了。请参见下面的新图
oz.dy <- dwplot(model.oz, vline = geom_vline(xintercept = 0.0, colour = 'grey60', linetype = 'dashed'),
dot_args = list(aes(shape = model), size = 3)) %>%
relabel_predictors(c('6'='6','5'='5','4'='4','3'='3','2'='2','1'='1',
'-2'='-2','-3'='-3','-4'='-4','-5'='-5')) +
xlab('Estimated Cofficients') + ylab('Leads and lags') +
ggtitle('Panel B: Ozone concentration') +
theme_classic() +
theme(plot.title = element_text(size = 16, hjust = 0.5),
axis.title.x = element_text(size = 13),
axis.title.y = element_text(size = 13),
axis.text.x = element_text(size = 13),
axis.text.y = element_text(size = 13),
legend.position = c(0.2,0.2)) +
coord_flip() +
annotate(geom="point", colour="red", x=0, y='-1', shape=16, size=3)
oz.dy%
重新标记预测器(c('6'='6','5'='5','4'='4','3'='3','2'='2','1'='1',),
'-2'='-2','-3'='-3','-4'='-4','-5'='-5')) +
xlab(‘估计系数’)+ylab(‘超前和滞后’)+
ggtitle(‘B组:臭氧浓度’)+
theme_classic()+
主题(plot.title=element\u text(大小=16,大小=0.5),
axis.title.x=元素\文本(大小=13),
轴.title.y=元素\文本(大小=13),
axis.text.x=元素\文本(大小=13),
axis.text.y=元素\文本(大小=13),
legend.position=c(0.2,0.2))+
坐标翻转()
注释(geom=“point”,color=“red”,x=0,y='-1',形状=16,大小=3)
怎么样
+ annotate(geom="point", colour="red",
x=-1, y=0, shape=16, size=3)
或者类似的?(由于使用了coord\u flip()
,您可能需要切换x
和y
)
由于轴实际上是离散的(数字表示类别),并且x/y是翻转的,因此需要设置y=5.5
(介于-2和0类别之间):
对于轴刻度,您可以使用
+ annotate("segment", y=5.5, yend=5.5,
x=-Inf, xend=-11)
但我可能会推荐一条geom_vline(或geom_hline,因为coord_flip而无法分辨)这可以通过使用ggplot2
并添加您想要的数字来实现:
binned <- bind_rows(td.oz.1,data.frame(term=-1,model="Without state trend"))
oz.dy.1 <- dwplot(binned, vline = geom_vline(xintercept = 0.0, colour = 'grey60', linetype = 'dashed'),
dot_args = list(aes(shape = model), size = 3)) %>%
relabel_predictors(c('6'='6','5'='5','4'='4','3'='3','2'='2','1'='1','-1'='-1',
'-2'='-2','-3'='-3','-4'='-4','-5'='-5')) +
xlab('Estimated Cofficients') + ylab('Leads and lags') +
ggtitle('Panel A') +
theme_classic() +
theme(plot.title = element_text(size = 16, hjust = 0.5),
axis.title.x = element_text(size = 13),
axis.title.y = element_text(size = 13),
axis.text.x = element_text(size = 13),
axis.text.y = element_text(size = 13),
legend.position = c(0.2,0.2)) +
coord_flip() +
geom_point(aes(x = 0,y=5),color='red',size=5)
收纳良好。这很好。但是,如何在水平线上添加-1
勾号?是的。位置正确。我们只需要创建-1
勾选x
。我还尝试了annotate
,虽然出现了技巧,但顺序混乱。请参阅我的编辑。@YabinDa我已更新解决方案。让我知道它是否有效!嗨,鸭子,我还有一个问题。我试图在-1
的勾号处为最终绘图添加一条垂直线。因为坐标是翻转的,所以我使用代码geom_hline(yintercept=-1,color='red',linetype='虚线')
但是,这条线不会出现。有什么想法吗?问题解决了。我需要将位置从-1
更改为5
。谢谢,谢谢。这是一种选择。我试过你的代码,但还是有问题。我编辑了这篇文章。谢谢你的帮助。问题部分解决了。剩下的问题是如何在x
轴(filp之后)上创建-1
技巧。geom\u hline
和geom\u vline
的问题是需要存在-1
勾号。否则,无法绘制直线。??我建议在y=5.5的坐标处画线,这对应于你得到的刻度上-1的位置。另一种方法是运行broom::tidy()
,使用geom\u pointrange()
和连续的x刻度,而不是离散的x刻度,自己设置绘图
+ annotate("segment", y=5.5, yend=5.5,
x=-Inf, xend=-11)
binned <- bind_rows(td.oz.1,data.frame(term=-1,model="Without state trend"))
oz.dy.1 <- dwplot(binned, vline = geom_vline(xintercept = 0.0, colour = 'grey60', linetype = 'dashed'),
dot_args = list(aes(shape = model), size = 3)) %>%
relabel_predictors(c('6'='6','5'='5','4'='4','3'='3','2'='2','1'='1','-1'='-1',
'-2'='-2','-3'='-3','-4'='-4','-5'='-5')) +
xlab('Estimated Cofficients') + ylab('Leads and lags') +
ggtitle('Panel A') +
theme_classic() +
theme(plot.title = element_text(size = 16, hjust = 0.5),
axis.title.x = element_text(size = 13),
axis.title.y = element_text(size = 13),
axis.text.x = element_text(size = 13),
axis.text.y = element_text(size = 13),
legend.position = c(0.2,0.2)) +
coord_flip() +
geom_point(aes(x = 0,y=5),color='red',size=5)