gpt4 book ai didi

r - 在ggplot2中标记特定点

转载 作者:行者123 更新时间:2023-12-04 11:01:57 28 4
gpt4 key购买 nike

我正在尝试在 ggplot2 的特定散点图中标记各个兴趣点。我的数据作为多列的 csv 文件存在。

Gene       chr    start    stop      A      B       C       D      E
APOBEC3G chr22 39472992 39483773 97.06 214.56 102.34 20.00 19.45
APOBEC3C ...

等等等等。我正在尝试通过 ggplot 绘制 A 列与 B 列,我成功了,并且可以用相应的基因名称标记所有点。但是,如何突出显示(即颜色、大小变化)感兴趣的单个基因? (又名:如何使我手头的 10 个基因列表的数据点脱颖而出?或者如何在散点图上注释我感兴趣的基因而不注释所有其他点?)

我试过使用 subset功能,但我在 R 的新手角色让我有点束手无策。

最佳答案

您需要创建一个新变量来区分要突出显示的观察结果。

让我们模拟一个 data.frame :

df <- data.frame(genes=letters,
A=runif(26),
B=runif(26))

您当前的图应如下所示(点 + 标签):
ggplot(data=df,aes(x=A,y=B,label=genes)) +
geom_point() +
geom_text(hjust=-1,vjust=1)

为了突出一些基因,我们创建了一个新变量,组。我将“重要”分配给一些任意基因。您可能希望以编程方式执行此操作,例如查找异常值。
df$group <- "not important"
df$group[df$genes %in% c("d","g","b")] <- "important"

现在,有两种方法可以分离基因。最特别的是给两组(一种用于重要基因,一种用于不重要基因)赋予一种颜色(或形状或大小等)。这可以通过将新变量映射到颜色(或大小、形状等)来轻松实现:
ggplot(data=df,aes(x=A,y=B,label=genes)) +
geom_point(aes(color=group)) +
geom_text(hjust=-1,vjust=1)

enter image description here

但是,您也可以在单独的图层上绘制每个组。明确突出重要基因。在这种情况下,我们首先添加所有点,然后添加一个新的 geom_point只包含重要基因,具有特殊属性(这里是颜色和大小)。
ggplot(data=df,aes(x=A,y=B,label=genes)) +
geom_point() +
geom_point(data=df[df$group == "important",],color="red",size=3) +
geom_text(hjust=-1,vjust=1)

enter image description here

关于r - 在ggplot2中标记特定点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32640557/

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