第1章:课程介绍与环境搭建
1.1 这门课能帮你解决什么问题
大家好,我是你们这节课的讲师。先说说我自己的经历——几年前我在做RNA-seq差异表达分析时,对着几千个基因的p-value和logFC发愁。用Excel画?图丑得没法看。用R?我当时的Python代码流又切不过去。后来我发现,只要把matplotlib和seaborn用好,几张火山图、热图、MA图就能把生物学家讲明白。说白了,这门课就是教你用Python画出「能发文章」的差异表达图表。
个人习惯上,我更喜欢用Jupyter Notebook做探索性绘图,调好参数之后再用脚本批量出图。你想想看,30章下来,你会掌握从原始数据到出版级图表的完整流程。
1.2 环境搭得好,后面少烦恼
先别急着装包,我给大家画了一张本章的核心流程。
小提示:如果你已经装了Anaconda,可以直接跳到1.4节。不过我个人习惯用Miniconda + 手动管理环境,启动快,体积也小。
1.3 安装Python包——一行命令就够了?
嗯,其实不止一行。我们先创建虚拟环境,这样后面30章用到的库彼此隔离,不会跟其他项目打架。我曾经在同一台机器上同时做两个项目,一个要pandas 1.0,另一个要0.25,结果折腾了一下午。从那以后,我再也不在base环境装东西了。
打开终端或命令行,执行:
conda create -n bio_plot python=3.10 -y
conda activate bio_plot
然后安装四个核心库:
pip install matplotlib seaborn pandas numpy
如果网络慢,可以加个镜像:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib seaborn pandas numpy
注意:不要一次装太多包。我见过有人直接
pip install -r requirements.txt 结果把系统Python搞崩了。这四兄弟很干净,不会产生冲突。1.4 配置Jupyter Notebook或IDE
我个人工作流是这样的:在Jupyter里做交互探索,在VS Code里写最终脚本。不过你只用其中一个也完全够用。
1.4.1 Jupyter Notebook
激活环境后安装:
pip install jupyter notebook
jupyter notebook
浏览器会自动打开。如果没打开,复制终端里的token链接地址。建议安装jupyter_contrib_nbextensions扩展,能加很多好用的插件。我以前写代码经常忘了保存,装了自动保存插件后安心多了。
1.4.2 VS Code 配置
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 安装Python扩展 | 在VS Code扩展市场搜「Python」 |
| 2 | 选择解释器 | Ctrl+Shift+P,输入Python: Select Interpreter,选中bio_plot环境 |
| 3 | 安装Jupyter扩展 | 扩展市场搜「Jupyter」,方便在VS Code里用.ipynb文件 |
我的经验:VS Code里用 .py 文件写代码,配合 #%% 单元格标记,体验非常接近Jupyter但更轻量。快捷键 Ctrl+Enter 运行当前单元格,Shift+Enter 运行并跳到下一个。
1.5 验证安装——先跑个Hello World
这一章的最后一步,检验环境是否配好了。打开Jupyter或VS Code的新文件,输入:
import matplotlib
import seaborn as sns
import pandas as pd
import numpy as np
print("matplotlib version:", matplotlib.__version__)
print("seaborn version:", sns.__version__)
print("pandas version:", pd.__version__)
print("numpy version:", np.__version__)
# 画个简单散点图,确认渲染没问题
import matplotlib.pyplot as plt
x = np.random.randn(50)
y = np.random.randn(50)
plt.scatter(x, y)
plt.title("Hello from bio_plot environment!")
plt.show()
如果弹出散点图,恭喜你,环境搭建成功了!
坑:如果Jupyter里
plt.show() 不显示图片,大概率是后端问题。在代码开头加一行 %matplotlib inline 就好了。我之前碰到过服务器模式下不显示,加了这个就秒出图。1.6 学完本章你能带走什么
- 一个干净的Python虚拟环境,专为差异表达图表准备
- 四个核心库的最新稳定版
- Jupyter + VS Code双保险的工作流
- 验证通过的跑图能力
接下来每一章,我们都会在这个环境里实战。记住我一句话:环境问题占了数据可视化工作量的40%,搞定了这一步,后面全是享受。