我正在尝试在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 ...
Run Code Online (Sandbox Code Playgroud)
等等等等。我正在尝试通过ggplot绘制A列对B列,并且我成功了,并且可以用相应的基因名称标记所有点。但是,如何突出显示(即颜色,大小变化)感兴趣的单个基因?(又名:如何确定我手头有10个基因的列表的数据点?或者如何在散点图上注释感兴趣的基因而又不注释所有其他点?)
我已经尝试过使用该subset函数,但是我在R的新手角色使我有些滞留。
您需要创建一个新变量来区分要突出显示的观察结果。
让我们模拟一个data.frame:
df <- data.frame(genes=letters,
A=runif(26),
B=runif(26))
Run Code Online (Sandbox Code Playgroud)
您当前的绘图应如下所示(点+标签):
ggplot(data=df,aes(x=A,y=B,label=genes)) +
geom_point() +
geom_text(hjust=-1,vjust=1)
Run Code Online (Sandbox Code Playgroud)
为了突出显示某些基因,我们创建了一个新变量group。我将“重要”分配给一些任意基因。您可能希望以编程方式执行此操作,例如查找异常值。
df$group <- "not important"
df$group[df$genes %in% c("d","g","b")] <- "important"
Run Code Online (Sandbox Code Playgroud)
现在,有两种方法可以分离基因。最特质的是给两组都使用一种颜色(或形状,大小等)(一种用于重要基因,一种用于不重要的基因)。通过将新变量映射到颜色(或大小,形状等)可以轻松实现:
ggplot(data=df,aes(x=A,y=B,label=genes)) +
geom_point(aes(color=group)) +
geom_text(hjust=-1,vjust=1)
Run Code Online (Sandbox Code Playgroud)
但是,您也可以将每个组绘制在单独的图层上。明确突出重要基因。在这种情况下,我们首先添加所有点,然后添加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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10790 次 |
| 最近记录: |