|
1 | | -# 简介 |
| 1 | +# plotfig |
| 2 | + |
| 3 | +## 简介 |
2 | 4 |
|
3 | 5 | `plotfig` 是一个专为科学数据可视化设计的 Python 库,致力于为认知神经科研工作人员提供高效、易用且美观的图形绘制工具。 |
4 | | -该项目基于业界主流的可视化库—— `matplotlib`、`surfplot` 和 `plotly` 开发,融合了三者的强大功能,能够满足神经科学、脑连接组学、相关性分析、矩阵可视化等多种科研场景下的复杂绘图需求。 |
| 6 | +该项目基于业界主流的可视化库—— `matplotlib`、`surfplot` 和 `plotly`等库开发,融合了三者的强大功能,能够满足神经科学、脑连接组学、相关性分析、矩阵可视化等多种科研场景下的复杂绘图需求。 |
5 | 7 |
|
6 | 8 |  |
7 | 9 |
|
8 | | - |
9 | | -## 项目结构 |
| 10 | +### 项目结构 |
10 | 11 |
|
11 | 12 | 项目采用模块化设计,核心代码位于 `src/plotfig/` 目录下,包含如下主要功能模块: |
12 | 13 |
|
13 | 14 | - `bar.py`:条形图绘制,适用于分组数据的对比展示。 |
14 | 15 | - `correlation.py`:相关性矩阵可视化,便于分析变量间的相关性分布。 |
15 | 16 | - `matrix.py`:通用矩阵可视化,支持多种配色和注释方式。 |
16 | | -- `brain_surface.py`:脑表面可视化,利用 `surfplot` 实现三维脑表面图集结构的绘制。 |
| 17 | +- `brain_surface.py`:脑表面可视化,实现三维脑表面图集结构的绘制。 |
| 18 | +- `circos.py`:弦图可视化,适合平面展示脑区之间的连接关系。 |
17 | 19 | - `brain_connection.py`:玻璃脑连接可视化,支持复杂的脑网络结构展示。 |
18 | | -- `circos.py`:环状图(Circos)绘制,适合平面展示脑区之间的连接关系。 |
19 | | - |
20 | 20 |
|
21 | | -## 文档与示例 |
| 21 | +### 文档与示例 |
22 | 22 |
|
23 | 23 | `plotfig` 提供了网页文档和使用示例。具体参见[使用教程](https://ricardoryn.github.io/plotfig/)。 |
24 | 24 |
|
25 | | -`plotfig` API 设计简洁,参数灵活,适合科研人员和数据分析师快速集成到自己的数据分析流程中。 |
26 | | -其模块化架构便于后续功能扩展和自定义开发。 |
27 | | -结合 `matplotlib` 支持矢量图或高分辨率位图和交互式 HTML 输出,适合论文发表和学术展示。 |
28 | | - |
29 | | -# 安装 |
30 | | - |
31 | | -## 普通安装 |
| 25 | +## 安装 |
32 | 26 |
|
33 | 27 | `plotfig` 支持通过 `pip` 或源码安装,要求 Python 3.11 及以上版本。 |
34 | 28 |
|
35 | | - |
36 | | -**使用 pip 安装 <small>(推荐)</small>** |
| 29 | +### 使用 pip 安装 (推荐) |
37 | 30 |
|
38 | 31 | ```bash |
39 | 32 | pip install plotfig |
40 | 33 | ``` |
41 | 34 |
|
42 | | -**使用 GitHub 源码安装** |
| 35 | +### 使用 GitHub 源码安装 |
43 | 36 |
|
44 | 37 | ```bash |
45 | 38 | git clone --depth 1 https://github.com/RicardoRyn/plotfig.git |
46 | 39 | cd plotfig |
47 | 40 | pip install . |
48 | 41 | ``` |
49 | 42 |
|
50 | | -## 依赖要求 |
| 43 | +### 依赖要求 |
51 | 44 |
|
52 | | -`plotfig` 依赖若干核心库,这些依赖将在安装过程中自动处理: |
| 45 | +`plotfig` 依赖若干核心库,这些依赖将在安装过程中自动处理,但需要注意: |
53 | 46 |
|
54 | | -- [matplotlib](https://matplotlib.org/) ≥ 3.10.1 |
55 | | -- [mne-connectivity](https://mne.tools/mne-connectivity/stable/index.html) ≥ 0.7.0 |
56 | | -- [nibabel](https://nipy.org/nibabel/) ≥ 5.3.2 |
57 | | -- [numpy](https://numpy.org/) ≥ 2.2.4 |
58 | | -- [pandas](https://pandas.pydata.org/) ≥ 2.2.3 |
59 | | -- [plotly](https://plotly.com/) ≥ 6.1.1 |
60 | | -- [kaleido](https://github.com/plotly/Kaleido) ≥ 1.0.0 |
61 | | -- [scipy](https://scipy.org/) ≥ 1.15.2 |
62 | | -- [loguru](https://loguru.readthedocs.io/en/stable/) ≥ 0.7.3 |
63 | 47 | - [surfplot](https://github.com/danjgale/surfplot) 需使用其 GitHub 仓库中的最新版,而非 PyPI 上的版本,因后者尚未包含所需功能。 |
64 | 48 |
|
65 | 49 | > ⚠️ **指定 `surfplot` 版本** |
66 | 50 | > |
67 | | -> 由于 PyPI 上的 `surfplot` 版本较旧,缺少 `plotfig` 所需功能,建议通过以下步骤安装其 GitHub 仓库的最新版: |
68 | | -> |
69 | | -> ```bash |
70 | | -> # 卸载旧版本 |
71 | | -> pip uninstall surfplot |
| 51 | +> 由于 PyPI 上的 `surfplot` 版本较旧,缺少 `plotfig` 所需功能,建议通过以下步骤安装其 GitHub 仓库的最新版。 |
72 | 52 | > |
73 | | -> # 克隆源码并安装 |
74 | | -> git clone --depth 1 https://github.com/danjgale/surfplot.git |
75 | | -> cd surfplot |
76 | | -> pip install . |
77 | | -> |
78 | | -> # 安装完成后,返回上级目录并删除源码文件夹 |
79 | | -> cd .. |
80 | | -> rm -rf surfplot |
81 | | -> ``` |
| 53 | +> 如果您无须绘制 brain_surface 图,可以忽略此步骤。 |
82 | 54 |
|
83 | | -## 贡献指南 |
| 55 | +```bash |
| 56 | +# 卸载旧版本 |
| 57 | +pip uninstall surfplot |
| 58 | + |
| 59 | +# 克隆源码并安装 |
| 60 | +git clone --depth 1 https://github.com/danjgale/surfplot.git |
| 61 | +cd surfplot |
| 62 | +pip install . |
| 63 | + |
| 64 | +# 安装完成后,返回上级目录并删除源码文件夹 |
| 65 | +cd .. |
| 66 | +rm -rf surfplot |
| 67 | +``` |
84 | 68 |
|
85 | | -如果您希望参与 `plotfig` 的开发,或者想体验尚未正式发布的新功能和最新修复的 bug,可以选择以开发模式安装项目。 |
| 69 | +## 贡献指南 |
86 | 70 |
|
| 71 | +如果您希望参与 `plotfig` 的开发,或者想体验尚未正式发布的新功能,可以选择以开发模式安装项目。 |
87 | 72 | 这种“可编辑模式(editable mode)”安装方式允许您对本地源码的修改立即生效,非常适合开发、调试和贡献代码。 |
88 | 73 |
|
89 | 74 | 推荐先 Fork 仓库,然后克隆您自己的 Fork: |
90 | 75 |
|
91 | 76 | ```bash |
92 | | -git clone -b dev https://github.com/<your-username>/plotfig.git |
| 77 | +git clone -b dev https://github.com/<your-username >/plotfig.git |
93 | 78 | cd plotfig |
94 | 79 | pip install -e . |
95 | 80 | ``` |
96 | 81 |
|
97 | 82 | **欢迎提交 Issue 或 PR!** |
98 | 83 |
|
99 | | -无论是 Bug 报告、功能建议,还是文档改进,都非常欢迎你的参与。 |
100 | | -如果你在使用过程中遇到了问题,或者有更好的想法,欢迎在 [Issue](https://github.com/RicardoRyn/plotfig/issues) 中提出。 |
| 84 | +无论是 Bug 报告、功能建议、还是文档改进。 |
| 85 | + |
| 86 | +都非常欢迎在 [Issue](https://github.com/RicardoRyn/plotfig/issues) 中提出。 |
| 87 | + |
101 | 88 | 也可以直接提交 [PR](https://github.com/RicardoRyn/plotfig/pulls),一起变得更强 🙌! |
0 commit comments