ggplot2气泡图的又一个小例子

今天公众号的一位读者留言说要做气泡图。他的数据如下

image.png

ID是X,log2FC用作y,class是分类变量用来填充颜色 范围是A到I。P值用来映射点的大小。

还有一个要求是 能否突出p值<0.05?,我目前想到的办法是按0.05为界给P值分组,然后用不同形状的点来映射。

首先是读入数据
df<-read.csv("bubble_plot.csv",
             header=T,stringsAsFactors = F)
最基本的散点图
library(ggplot2)
ggplot(df,aes(x=ID,y=log2FC))+
  geom_point()
image.png
用class来映射颜色
ggplot(df,aes(x=ID,y=log2FC,color=Class))+
  geom_point()
image.png
用pvalue映射大小
ggplot(df,aes(x=ID,y=log2FC,
              color=Class,size=pvalue))+
  geom_point()
image.png
更改点的大小
ggplot(df,aes(x=ID,y=log2FC,
              color=Class,size=pvalue))+
  geom_point()+
  scale_size_continuous(range = c(1,10))
image.png
气泡图将透明度设置低一点可能会好看一点
ggplot(df,aes(x=ID,y=log2FC,
              color=Class,size=pvalue))+
  geom_point(alpha=0.5)+
  scale_size_continuous(range = c(1,10))
image.png
将数据的pvalue按照0.05分组,然后映射不同的形状
df$group<-ifelse(df$pvalue<0.05,"pvalue<0.05",
                 "pvalue>=0.05")
ggplot(df,aes(x=ID,y=log2FC,size=pvalue,
              color=Class,shape=group))+
  geom_point(alpha=0.5)+
  scale_size_continuous(range=c(1,10))
image.png

接下来就是美化

灰色背景不太喜欢,去掉
ggplot(df,aes(x=ID,y=log2FC,size=pvalue,
              color=Class,shape=group))+
  geom_point(alpha=0.5)+
  scale_size_continuous(range=c(1,10))+
  theme_bw()
image.png
现在是pvalue值大于0.05对应的是三角,pvalue值小于0.05对应的是圆圈,如果想对调位置的话
df$group<-factor(df$group,levels = c("pvalue>=0.05",
                                     "pvalue<0.05"))
ggplot(df,aes(x=ID,y=log2FC,size=pvalue,
              color=Class,shape=group))+
  geom_point(alpha=0.5)+
  scale_size_continuous(range=c(1,10))+
  theme_bw()
image.png
根据自己的想法来填充颜色

首先准备 11个颜色,class有多少个类别就准备多少个颜色

cols<-c("#0055AA","#C40003","#00C19B","#EAC862","#7FD2FF","#007ED3","#B2DF8A","#FFACAA","#FF9D1E","#C3EF00","#CAB2D6","#894FC6")
ggplot(df,aes(x=ID,y=log2FC,size=pvalue,
              color=Class,shape=group))+
  geom_point(alpha=0.5)+
  scale_size_continuous(range=c(1,10))+
  theme_bw()+
  scale_color_manual(values = cols)
image.png
将x轴和y轴的标签转换成自己想要的
ggplot(df,aes(x=ID,y=log2FC,size=pvalue,
              color=Class,shape=group))+
  geom_point(alpha=0.5)+
  scale_size_continuous(range=c(1,10))+
  theme_bw()+
  scale_color_manual(values = cols)+
  labs(x="",y="log2FC")
image.png

这样在图上突出显示的是P值大于0.05的那些点,如果想突出显示p值小于0.05的点

我暂时先到一个办法是对p值进行-log2转换,这样原来的小值就变成大值了,试一下这个想法

df$pvalue1<- -log2(df$pvalue)

ggplot(df,aes(x=ID,y=log2FC,size=pvalue1,
              color=Class,shape=group))+
  geom_point(alpha=0.5)+
  scale_size_continuous(range=c(1,10))+
  theme_bw()+
  scale_color_manual(values = cols)+
  labs(x="",y="log2FC")
image.png

现在又变成三角对应的pvalue是小于0.05的,把它改成圆圈

df$group<-factor(df$group,
                 levels = c("pvalue<0.05",
                            "pvalue>=0.05"))
ggplot(df,aes(x=ID,y=log2FC,size=pvalue1,
              color=Class,shape=group))+
  geom_point(alpha=0.5)+
  scale_size_continuous(range=c(1,10))+
  theme_bw()+
  scale_color_manual(values = cols)+
  labs(x="",y="log2FC")
image.png
最后导出pdf文件手动修改pvalue的图例
image.png

-log2好像变换不太合适,暂时想不到比较好的办法了。
最终图反映的信息是,圆点代表p值小于0.05,圆点越大,p值越小。叶色映射的是不同的分类

欢迎大家关注我的公众号
小明的数据分析笔记本

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,444评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,421评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,363评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,460评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,502评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,511评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,280评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,736评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,014评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,190评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,848评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,531评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,159评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,411评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,067评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,078评论 2 352