R语言不少库都可以方便的画dotplot,但是低频使用R这么多年,我依旧觉得R不是一门真正的编程语言。目前,在python中绘制dotplot貌似没有很轻量、方便的库,因此工作之余写了这个 python_dotplot包,方便自己也希望能够方便他人吧。
安装
可以通过pypi快速安装:
pip install python_dotplot
该package当然可能存在一定的bug,所以也会处于不断迭代的过程中,版本更新可以在github realease 获得最新信息,并可以通过以下方式获得特定或最新版本
pip install python_dotplot --upgrade
pip install python_dotplot==0.0.1b1
如果通过--upgrade
参数不能获得最新版本,可能你使用我在博客pip修改安装镜像源中的方法设置过国内镜像,国内镜像会有一定的延迟,可指定pypi官方源指定镜像:
pip install -i https://pypi.python.org/pypi python_dotplot
模块导入
import dotplot
import dotplot.utils
import pandas as pd
%config InlineBackend.figure_format = 'retina' # 如果你的电脑设备是视网膜屏,可指定该参数渲染jupyter图像,会超清晰,超好看
包的层级结构很简单,主要包括以下模块:
dotplot
├── cmap.py # 自定义color map
├── core.py # 实现了Dotplot
类,用于封装数据以及绘图
├── hierarchical.py # 实现了层次聚类,用于支持dotplot行和列通过层次聚类进行自动排序
├── __init__.py
# 初始化模块
└── utils.py # 实用函数,目前是夹带私货,我自己用的预处理函数,也许对其他人也有用
数据准备
我们首先需要准备一个数据,这里要求输入必须是一个tidy data格式的pandas Dataframe,简而言之,tidy data是指在该数据框中每一行是一个观测,每一列是一个属性(关于tidy data 和messy data更多信息请参考该博客),下面以示例数据为例:
term_list = ['GO:0002455', 'GO:0006958', 'GO:0006956', 'GO:0038096','GO:0002673',
'GO:0051251', 'GO:0060333', 'GO:0006910','GO:0002483', 'GO:0002440',
'GO:0009141', 'GO:0009123',