【发布时间】:2018-07-12 13:02:40
【问题描述】:
不幸的是,我正在为这个愚蠢的问题创建一个新帖子......
我有以下数据
Substrate observed pred.cs pred.ainslie
Alfentanil 1.60 1.9 1.50
Alprazolam 1.10 1.1 1.20
Atorvastatin 1.20 3.1 4.00
Buspirone 2.00 1.9 4.20
Cyclosporine 1.90 2.3 1.70
Felodipine 2.00 2.3 1.90
Methadone 1.10 3.1 1.20
Midazolam 1.70 1.9 1.60
Nifedipine 1.10 1.2 1.20
Nisoldipine 3.05 2.3 8.10
Sildenafil 1.20 2.0 1.10
Simvastatin 3.60 3.1 1.50
Quinidine 1.05 0.8 1.30
Tacrolimus 6.60 1.7 0.95
Triazolam 2.00 1.7 1.50
我想绘制一个散点图,其中 x 轴是观察值,Y 值是 pred.cs 和 pred.ainslie
我知道一个合理的做法是以一种可以由 ggplot 处理的方式融化数据框,但我不知道如何......
理想情况下,它应该类似于 https://i.stack.imgur.com/9udmg.jpg 其中有围绕数据点的置信区间和位于外部的指示(通过它们的 Substrate 名称)。
如果有一种方法可以根据它们来自哪个列来为点着色,那就太好了,即 pred.cs 说黑色和 pred.ainslie 是白色
对不起,如果这真的很基础,但过去 2 小时我一直在努力,没有任何进展!
谢谢
编辑
感谢所有回答的人,非常感谢您的回答。
我现在已经达到了这一点(使用提供的帮助和代码):
data %>%
gather(val.type, value, pred.cs:pred.ainslie) %>%
ggplot(aes(x = observed, y = value, shape = val.type, color = "black")) +
geom_point(size = 3, color = "black", shape = c(rep(1,15),rep(19,15))) +
geom_abline(intercept= 0, slope =1)+
geom_abline(intercept= 0, slope = 0.75, linetype= "dashed")+
geom_abline(intercept= 0, slope = 1.25, linetype= "dashed")+
scale_shape_manual(name = "Study", values = c(pred.cs = 1,
red.ainslie=21))+
theme( axis.line = element_line(colour = "black", size = 0.2, linetype=
"solid")) +
scale_x_continuous(expand = c(0,0),limits = c(0,10)) +
scale_y_continuous(expand = c(0,0),limits = c(0,10))
制作这个:https://i.stack.imgur.com/DkXmY.png
现在的问题变成了......有没有办法标记位于我创建的线锥之外的点?理想情况下,它将是一个黑色箭头,指向带有其 Sustrate 标识符的点
再次感谢您!
【问题讨论】:
-
干杯,我可以从中提取一些信息,即您可以将 geom_point 链接在一起 ggplot(data, aes(observed))+ geom_point(aes(y = pred.cs), color = "black", size= 1) + geom_point(aes(y = pred.ainslie), color = "red", size= 1) geom_smooth 不再有效,因为(我猜)x,y 没有配对