# ggplot2-plotly|让你的火山图“活”过来

```library(ggplot2)
`head(data) #查看数据类型，主要有P值，Fold change和基因ID即可。`

2.1 绘制简单的火山图--点图

```ggplot(data = data, aes(x = logFC, y = -log10(adj.P.Val))) +
geom_point(alpha=0.8, size = 1)```

A：上下调基因的区分；

B：横轴，纵轴的阈值线；

C：重点基因的标示。

2.2 细节优化火山图

1）根据阈值设定上下调基因

`data\$change <- as.factor(ifelse(data\$adj.P.Val < 0.01 & abs(data\$logFC) > 1,ifelse(data\$logFC > 1,'UP','DOWN'),'NOT'))`

2）添加阈值线

```ggplot(data = data, aes(x = logFC, y = -log10(adj.P.Val), color = change)) +
geom_point(alpha=0.8, size = 1) +
theme_bw(base_size = 15) +
theme(panel.grid.minor = element_blank(),panel.grid.major = element_blank()) +
geom_hline(yintercept=2 ,linetype=4) +
geom_vline(xintercept=c(-1,1) ,linetype=4 ) +
scale_color_manual(name = "", values = c("red", "green", "black"), limits = c("UP", "DOWN", "NOT"))  ```

3） 标示重点显著差异基因

`data\$sign <- ifelse(data\$adj.P.Val < 0.001 & abs(data\$logFC) > 2.5,rownames(data),NA)`
```ggplot(data = data, aes(x = logFC, y = -log10(adj.P.Val), color = change)) +
geom_point(alpha=0.8, size = 1) +
theme_bw(base_size = 15) +
theme(panel.grid.minor = element_blank(),panel.grid.major = element_blank()) +
geom_hline(yintercept=2 ,linetype=4) +
geom_vline(xintercept=c(-1,1) ,linetype=4 ) +
scale_color_manual(name = "", values = c("red", "green", "black"), limits = c("UP", "DOWN", "NOT")) +
geom_text(aes(label = sign), size = 3) ```

4） 解决基因名重叠问题

```library(ggrepel)
ggplot(data = data, aes(x = logFC, y = -log10(adj.P.Val), color = change)) +
geom_point(alpha=0.8, size = 1) +
theme_bw(base_size = 15) +
theme(panel.grid.minor = element_blank(),panel.grid.major = element_blank()) +
scale_color_manual(name = "", values = c("red", "green", "black"), limits = c("UP", "DOWN", "NOT")) +

5） 标示感兴趣的基因的表达情况

```ggplot(data = data, aes(x = logFC, y = -log10(adj.P.Val), color = change)) +
geom_point(alpha=0.8, size = 1) +
theme_bw(base_size = 15) +
theme(panel.grid.minor = element_blank(),panel.grid.major = element_blank() ) +
scale_color_manual(name = "", values = c("red", "green", "black"), limits = c("UP", "DOWN", "NOT")) +

1）plot_ly函数画散点图

```library(plotly)
plot_ly(data,x = ~logFC, y = ~-log10(adj.P.Val),text = ~sign, type = 'scatter',  mode = 'markers')```

https://www.bioconductor.org/packages/release/bioc/vignettes/EnhancedVolcano/inst/doc/EnhancedVolcano.html

0 条评论

• ### 小数据| 描述性统计（Python/R 实现）

描述性统计是借助图表或者总结性的数值来描述数据的统计手段。数据挖掘工作的数据分析阶段，可以借助描述性统计来描述或总结数据的基本情况。

• ### R-rbind.fill|列数不一致的多个数据集“智能”合并，Get！

Q：多个数据集，列数不一致，列名也不一致，如何按行合并，然后保留全部文件的变量并集呢？

• ### ggplot2-图形微调（1）

绘图过程中，通过给图形中添加适量的注释（图形、公式、注释）以及图形整体的外观，可以使读图者更快速、更准确的了解图形表达的含义。

• ### 【IoT应用创新大赛】LoRaWAN在工业互联网中的应用

工业互联网，是智能制造发展的基础，可以提供共性的基础设施和能力；我国已经将工业互联网作为重要基础设施，为工业智能化提供支撑。

• ### R语言与生信系列①(R入门与临床三线表绘制)

首次分享课讲的是TCGA数据分析，探究某一因素与肿瘤临床数据之间的关系，并自动生成可以用于SCI发表的三线表，如下图所示：

• ### 数据特征分析

“原因和结果、投入和产出、努力和报酬之间本来存在着无法解释的不平衡。一般来说，投入和努力可以分为两种不同的类型： 多数，它们只能造成少许的影响；少数，它们造成主...

• ### 如何利用Requests和网dai平台做一个短信hz

对于众所周知的事就是网dai害人，尤其是对于那些高炮系列，更是害人不浅那，今天我们就来尝试用网dai的短xin接口做一个用于娱乐的短信hzj，耗光这些网dai平...

• ### R语言可视化——中心放射状路径图

最近一直在研究ggplot剩余还没有涉略过的图表类型，试图挖掘出一些新的图表形式，就像是该包的作者所暗示的那样，ggplot2只是给你搭建了一个图层语法环境，至...

• ### [object%20Object] 这个ajax请求的时候报错，解决方法

原因是jQuery版本低，不能使用 .post(） 改为 .ajax({ type: “post”,

• ### Python读取结果写入Excel中

列表嵌套字典。Excel中的url,test_method,data,title等都是一个键，url,test_method,data,title下面的数据就是...