gpt4 book ai didi

r - ggplot 为每个组绘制特定边界?

转载 作者:行者123 更新时间:2023-12-01 16:50:57 25 4
gpt4 key购买 nike

嗨,假设我有一个像这样的数据框。

id     gene    value      upper    lower
AE5 ATM 4.046142 0.5440875 5.941381
AE5 ATR 3.463361 1.5046214 4.867110
AE5 BRCA1 4.228049 -0.7397759 5.791135
AE5 CDK12 4.488001 1.6029831 6.106177
AE5 CDKN1A 4.837943 2.1936042 9.880194
AE6 ATM 3.629939 0.5440875 5.941381
AE6 ATR 3.121015 1.5046214 4.867110
AE6 BRCA1 4.368070 -0.7397759 5.791135
AE6 CDK12 4.759688 1.6029831 6.106177
AE6 CDKN1A 5.757290 2.1936042 9.880194

我可以用 ggplot 绘制它

ggplot(final , aes(y=gene, x=value, col=id)) +
geom_point(size=5)

它让我看到了这个情节。 enter image description here

但是,我另外想要的是根据数据框的上列和下列为每个组设置边界线。例如,ATM 将在 0.54 和 5.9 上有交叉的小垂直线。这样我可以更好地想象每个样本着陆的位置。提前致谢!

最佳答案

您可以使用ggstance包中的geom_errorbarh。要拥有单个范围线而不管 id(因为 id 的两个级别的范围相同),请将颜色美感移至 geom_point因此它仅适用于点而不适用于误差线。我们还将 geom_errorbarh 中的数据设置为仅选择一个 id,以避免多次绘制相同的误差线。

library(ggplot2)
library(ggstance)

ggplot(final , aes(y=gene, x=value)) +
geom_errorbarh(data=final[final$id=="AE5",], aes(xmin=lower, xmax=upper),
width=0.2, colour="grey50") +
geom_point(size=5, aes(col=id)) +
theme_bw()

enter image description here

要获得垂直线,您可以使用 "|" 作为点标记对 geom_point 进行两次调用(尽管我认为使用水平线引导眼睛)。

ggplot(final , aes(y=gene, x=value)) +
geom_point(aes(x=upper), shape="|", size=5) +
geom_point(aes(x=lower), shape="|", size=5) +
geom_point(size=5, aes(col=id)) +
theme_bw()

enter image description here

关于r - ggplot 为每个组绘制特定边界?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47841077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com