用 python 画个火山图
测试开头









测试结尾
患得患失

1引言
带大家尝试用 python 画一个火山图, 当然只是尝试,效果将就一下。
测试数据已上传到 QQ 群文件夹!
2读取差异表格数据
# 导入模块
import numpy as np
import pandas as pd
# 1.读取测试数据
data=pd.read_csv('C:/Users/admin/Desktop/limma_res.csv')
# 2.查看数据
data.head()

3筛选差异基因
# 3.尝试写循环筛选上下调基因分类赋值给 "up" 和 "down" 和 "nosig" 加入pvalue条件
data.loc[(data.logFC>1)&(data.PValue<0.05),'type']='up'
data.loc[(data.logFC<-1)&(data.PValue<0.05),'type']='down'
data.loc[(abs(data.logFC)<=1)|(data.PValue>=0.05),'type']='nosig'
# 4.查看数据
data.head()

4统计个数
# 5.统计个数
data.type.value_counts()
nosig 57603
down 259
up 189
Name: type, dtype: int64
5绘图
# 6.画个火山图试试
# 载入绘图需要的模块
import seaborn as sns
import math
import matplotlib.pyplot as plt
import matplotlib as mpl
%matplotlib inline
# 对PValue取个-log10对数
data['pvalue']=-data.PValue.apply(math.log10)
# 查看
data[['logFC','PValue','type','pvalue']].head()

绘图:
# 先设置一下自己的颜色
colors = ["#01c5c4","#ff414d", "#686d76"]
sns.set_palette(sns.color_palette(colors))
# 绘图
ax=sns.scatterplot(x='logFC', y='pvalue',data=data,
hue='type',#颜色映射
edgecolor = None,#点边界颜色
s=8,#点大小
)
# 标签
ax.set_title("Python vocalno")
ax.set_xlabel("log2FC")
ax.set_ylabel("-log10(pvalue)")
#移动图例位置
ax.legend(loc='center right', bbox_to_anchor=(0.95,0.76), ncol=1)

6保存
# 7.保存图片
fig = ax.get_figure()
fig.savefig('./python_vocalno.pdf')

7用 ggplot 画
# 导入ggplot
from ggplot import *
# 绘图
ggplot(data,aes(x = 'logFC', y = 'pvalue',color = 'type')) +
geom_point(alpha = 0.5,size = 35) +
scale_color_manual(values = ('blue','grey','red')) +
theme_xkcd()

感觉画图还是没有 R 方便。

欢迎加入生信交流群。加我微信我也拉你进 微信群聊 老俊俊生信交流群
哦,数据代码已上传至QQ群,欢迎加入下载。
群二维码:

老俊俊微信:
知识星球:
所以今天你学习了吗?
欢迎小伙伴留言评论!
今天的分享就到这里了,敬请期待下一篇!
最后欢迎大家分享转发,您的点赞是对我的鼓励和肯定!
如果觉得对您帮助很大,赏杯快乐水喝喝吧!
往期回顾
◀geneExpressionFromGEO 下载并注释芯片数据
◀组会文献分享 — YTHDF2 介导靶基因 mRNA 降解参与前列腺癌进展
◀…
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!