查看: 39266|回复: 67

[R语言] R语言ggplot2画图教程之——火山图

  [复制链接]

版主

Rank: 10Rank: 10Rank: 10

主题
5
注册时间
2015.12.21
在线时间
71 小时

突出贡献论坛元老


发表于 2016.1.15 14:22:32 | 显示全部楼层 |阅读模式
# 需要安装的包:ggplot2
install.packages("ggplot2")
# 导入包
# 帮助文档链接:http://docs.ggplot2.org/current/
library(ggplot2)
# 改变工作路径,将工作路径改变到数据存放的文件夹下
# 火山图
# 读取数据:R0-vs-R3.isoforms.filter.tsv
data =read.table("R0-vs-R3.isoforms.filter.tsv",header=T,row.names=1)
# 画图
r03 = ggplot(data,aes(log2FC,-1*log10(FDR)))
r03 + geom_point()
# 如何改变点的颜色
r03 + geom_point(color="red")
r03 +geom_point(aes(color="red"))
r03 + geom_point(aes(color=significant))
# 设置坐标轴范围和标题
# xlim()ylim()函数,labs(title=..,x=..,y=..)函数
r03xy = r03 +geom_point(aes(color=significant)) + xlim(-4,4) + ylim(0,30)
r03xy + labs(title="Volcanoplot",x="log2(FC)")
r03xy + labs(title="Volcanoplot",x=expression(log[2](FC)), y=expression(-log[10](FDR)))
# 自定义颜色
r03xyp = r03xy + labs(title="Volcanoplot",x=expression(log[2](FC)), y=expression(-log[10](FDR)))
r03xyp + scale_color_manual(values =c("green","black", "red"))
volcano = r03xyp +scale_color_manual(values = c("#00ba38","#619cff","#f8766d"))
# 添加阈值线
volcano+geom_hline(yintercept=1.3)+geom_vline(xintercept=c(-1,1))
volcano+geom_hline(yintercept=1.3,linetype=4)+geom_vline(xintercept=c(-1,1),linetype=4)

# 保存图片
ggsave("volcano.png")
ggsave("volcano8.png",volcano,width=8,height=8)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1奥币 +10 收起 理由
Miss甄 + 10 楼主码字辛苦

查看全部评分

回复

使用道具 举报

帝王蝶

Rank: 4

主题
15
注册时间
2015.11.12
在线时间
28 小时

发表于 2016.1.15 17:40:19 | 显示全部楼层
给楼主点个赞
回复 支持 反对

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
0
注册时间
2016.1.10
在线时间
56 小时

发表于 2016.1.16 21:26:15 | 显示全部楼层
点赞!
回复

使用道具 举报

帝王蝶

Rank: 4

主题
7
注册时间
2015.12.29
在线时间
24 小时

突出贡献论坛元老


发表于 2016.1.16 21:37:29 | 显示全部楼层
太漂亮了,请问箱图的代码是什么呢?那个分享的我做了不对
回复 支持 反对

使用道具 举报

管理员

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

主题
126
注册时间
2015.11.12
在线时间
786 小时

推广达人宣传达人论坛元老


发表于 2016.1.16 23:54:58 | 显示全部楼层
taojun7054602 发表于 2016.1.16 21:37
太漂亮了,请问箱图的代码是什么呢?那个分享的我做了不对

具体是哪里不对可以说具体点嘛亲
哈啊哈哈
回复 支持 反对

使用道具 举报

帝王蝶

Rank: 4

主题
1
注册时间
2015.12.29
在线时间
20 小时

发表于 2016.1.19 16:25:35 | 显示全部楼层
,太好了,谢谢楼主!
回复 支持 反对

使用道具 举报

帝王蝶

Rank: 4

主题
0
注册时间
2016.1.13
在线时间
196 小时

发表于 2016.1.19 16:31:51 | 显示全部楼层
漂亮
早上好。。
回复

使用道具 举报

帝王蝶

Rank: 4

主题
0
注册时间
2016.1.13
在线时间
196 小时

发表于 2016.1.19 16:37:49 | 显示全部楼层
不错
早上好。。
回复

使用道具 举报

帝王蝶

Rank: 4

主题
1
注册时间
2015.12.29
在线时间
20 小时

发表于 2016.1.19 16:41:36 | 显示全部楼层
帮助文档链接,不是在网页直接输入的吗?我把网址输入,打不开。

点评

是网页,应该可以打开,你再试试。  发表于 2016.1.19 16:55
回复 支持 反对

使用道具 举报

帝王蝶

Rank: 4

主题
1
注册时间
2015.12.29
在线时间
20 小时

发表于 2016.1.19 16:57:46 | 显示全部楼层
好吧,谢谢周老师,你能再给我回答一下,怎么改变工作路径吗?那天看完你录的视频,没记下来。想用你的传的数据,试一下这个火山图,结果没法读取数据。
回复 支持 反对

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
3
注册时间
2016.1.8
在线时间
27 小时

发表于 2016.1.19 17:30:21 | 显示全部楼层
请教一下,数据里面的FC,用的是R3/R0还是R3-R0计算的呢,两种计算方法有区别吗?谢谢
回复 支持 反对

使用道具 举报

版主

Rank: 10Rank: 10Rank: 10

主题
5
注册时间
2015.12.21
在线时间
71 小时

突出贡献论坛元老


 楼主| 发表于 2016.1.19 17:46:14 | 显示全部楼层
qh2012 发表于 2016.1.19 17:30
请教一下,数据里面的FC,用的是R3/R0还是R3-R0计算的呢,两种计算方法有区别吗?谢谢 ...

FC = Fold Change, 算的是倍数变化,所以是R3/R0
回复 支持 反对

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
8
注册时间
2015.12.29
在线时间
65 小时

发表于 2016.1.29 15:50:41 | 显示全部楼层
太赞了  大顶
大家加油哇
回复 支持 反对

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
2
注册时间
2016.1.8
在线时间
14 小时

发表于 2016.2.21 09:58:08 | 显示全部楼层
您好,可以帮忙看看什么原因吗。运行到设置坐标轴时出现,
> r03 + geom_point(aes(color=significant))
> r03xy = r03 +geom_point(aes(color=significant)) + xlim(-4,4) + ylim(0,30)
> r03xy + labs(title="Volcanoplot",x="log2(FC)")
Warning message:
Removed 6353 rows containing missing values (geom_point).
> r03xy + labs(title="Volcanoplot",x=expression(log[2](FC)), y=expression(-log[10](FDR)))
Warning message:
Removed 6353 rows containing missing values (geom_point).
>
回复 支持 反对

使用道具 举报

版主

Rank: 10Rank: 10Rank: 10

主题
5
注册时间
2015.12.21
在线时间
71 小时

突出贡献论坛元老


 楼主| 发表于 2016.2.23 09:12:01 | 显示全部楼层
yukaifan 发表于 2016.2.21 09:58
您好,可以帮忙看看什么原因吗。运行到设置坐标轴时出现,
> r03 + geom_point(aes(color=significant))
>  ...

首先这个只是个warning,并不会影响程序执行。

warning的内容就会告诉你,在你设置了坐标轴范围之后,会有多少点被过滤掉(即不在你设置的坐标范围之内)
回复 支持 反对

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
2
注册时间
2016.1.8
在线时间
14 小时

发表于 2016.2.27 15:41:22 | 显示全部楼层
生物信息学 发表于 2016.2.23 09:12
首先这个只是个warning,并不会影响程序执行。

warning的内容就会告诉你,在你设置了坐标轴范围之后,会 ...

哦,谢谢
回复 支持 反对

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
8
注册时间
2015.12.29
在线时间
65 小时

发表于 2016.3.17 15:50:37 | 显示全部楼层
大赞,输入data的格式只能是tsv的么?
大家加油哇
回复 支持 反对

使用道具 举报

版主

Rank: 10Rank: 10Rank: 10

主题
5
注册时间
2015.12.21
在线时间
71 小时

突出贡献论坛元老


 楼主| 发表于 2016.4.12 11:31:31 | 显示全部楼层
xk995 发表于 2016.3.17 15:50
大赞,输入data的格式只能是tsv的么?

tsv是一种用来表示纯文本的表格文件的后缀,其中你叫其他的名字也可以,只要内容符合要求即可。
回复 支持 反对

使用道具 举报

中华鲟

Rank: 5Rank: 5

主题
7
注册时间
2016.1.21
在线时间
95 小时

发表于 2016.4.13 10:02:41 | 显示全部楼层
生物信息学 发表于 2016.4.12 11:31
tsv是一种用来表示纯文本的表格文件的后缀,其中你叫其他的名字也可以,只要内容符合要求即可。 ...

制表分隔符的txt也行呗?
回复 支持 反对

使用道具 举报

版主

Rank: 10Rank: 10Rank: 10

主题
5
注册时间
2015.12.21
在线时间
71 小时

突出贡献论坛元老


 楼主| 发表于 2016.4.13 11:10:18 | 显示全部楼层
dabaouc 发表于 2016.4.13 10:02
制表分隔符的txt也行呗?

是的,其实是一种格式
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表