我正在尝试在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中的新手角色让我有点束手无策。
发布于 2015-09-20 18:31:58
您需要创建一个新变量来区分要高亮显示的观测值。
让我们模拟一个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)为了突出某些基因,我们创建了一个新变量group。我给一些专断的基因指定了“重要”。您可能希望通过编程来实现这一点,例如,通过查找异常值。
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)

但是,也可以在单独的图层上打印每个组。以清楚地突出重要的基因。在这种情况下,我们首先添加所有的点,然后添加一个新的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)

https://stackoverflow.com/questions/32640557
复制相似问题