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)