0

我正在努力解决以下问题,非常感谢您的帮助。

我有以下数据(这只是一个简化的随机示例)

x<- c('left', 'left', 'left', 'right', 'right', 'right')
y<- c (0.5, 0.3, 0.2, 0.5, 0.7, 0.2)
conf<- c(1.5, 1.7, 3, 2, 3, 1)
df <-data.frame(x,y,conf)

我想做下面的情节。

library(ggplot2)
ggplot(df, aes(x=x, y=y))+geom_point()+coord_flip()

这会生成以下图像,请参见此处的照片。但是我的每个点 (y) 也有一定的相关置信度(变量 conf),我想将其绘制为另一个 x 轴上的置信度值(在这种情况下将位于右侧,置信度值将是垂直线)。如何在图的右侧添加第二个 x 轴,以便它是数字的,并将我的值绘制为置信区间?

非常感谢你的帮助。

4

2 回答 2

4

使用geom_errorbarh()你可以这样做:

library(ggplot2)
ggplot(df, aes(x=x, y=y))+geom_point()+coord_flip()+ 
    geom_errorbarh(aes( xmax = as.numeric(x)+conf/10, 
                       xmin = as.numeric(x)-conf/10, 
                       height=0))

在此处输入图像描述

但正如在其他帖子中所说,在您的 x 轴上具有多个含义可能不是很好,因此您可以facet

ggplot(df, aes(x=0, y=y))+geom_point()+ 
     geom_errorbarh(aes( xmax = conf, xmin = -conf, height=0))+
     coord_flip()+facet_wrap(~dir, nrow=2)

在此处输入图像描述

于 2016-05-11T22:51:23.370 回答
1

环顾四周,几个线程表明 ggplot 旨在不支持您正在寻找的内容,这通常是不好的做法(请参阅此评论此线程)。

这里似乎有一个“黑客” ,可能比你想要的更进一步。

旁注:请问您为什么决定将 y 轴标记为“x”,将 x 轴标记为“y”?

于 2016-05-11T22:51:43.610 回答