plotfig 1.4.0__tar.gz → 1.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {plotfig-1.4.0 → plotfig-1.5.0}/.github/workflows/dependency_review.yml +4 -4
- {plotfig-1.4.0 → plotfig-1.5.0}/.github/workflows/python_publish.yml +0 -3
- {plotfig-1.4.0 → plotfig-1.5.0}/.github/workflows/release.yml +1 -1
- {plotfig-1.4.0 → plotfig-1.5.0}/.github/workflows/sync_to_gitee.yml +1 -1
- {plotfig-1.4.0 → plotfig-1.5.0}/.github/workflows/website_deploy.yml +6 -6
- plotfig-1.5.0/.release-please-manifest.json +3 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/CHANGELOG.md +29 -6
- {plotfig-1.4.0 → plotfig-1.5.0}/PKG-INFO +29 -23
- {plotfig-1.4.0 → plotfig-1.5.0}/README.md +28 -22
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/index.md +0 -2
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/installation.md +30 -23
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_deprecated.md +10 -0
- plotfig-1.5.0/docs/usage/brain_surface_deprecated_files/brain_surface_deprecated_7_1.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/pyproject.toml +2 -1
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/bar.py +94 -39
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/brain_connection.py +4 -3
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/brain_surface.py +1 -1
- {plotfig-1.4.0 → plotfig-1.5.0}/uv.lock +429 -1
- plotfig-1.4.0/.release-please-manifest.json +0 -3
- plotfig-1.4.0/docs/usage/brain_surface_deprecated_files/brain_surface_deprecated_7_1.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/.github/workflows/summary_new_issues.yml +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/.gitignore +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/.python-version +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/LICENSE +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/api/index.md +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/assets/atlas_csv/chimpanzee_bna.csv +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/assets/atlas_csv/human_bna.csv +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/assets/atlas_csv/human_glasser.csv +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/assets/atlas_csv/macaque_bna.csv +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/assets/atlas_csv/macaque_charm5.csv +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/assets/atlas_csv/macaque_charm6.csv +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/assets/atlas_csv/macaque_d99.csv +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/assets/plotfig.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_connectivity.md +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_connectivity_files/human.gif +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface.md +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_deprecated_files/brain_surface_deprecated_10_1.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_deprecated_files/brain_surface_deprecated_11_1.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_deprecated_files/brain_surface_deprecated_7_2.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_deprecated_files/brain_surface_deprecated_8_1.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_deprecated_files/brain_surface_deprecated_8_2.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_10_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_10_1.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_11_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_12_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_13_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_13_1.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_14_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_14_1.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_15_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_16_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_17_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_18_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_19_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_20_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_21_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_23_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_24_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_25_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_4_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_5_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_6_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_6_1.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_7_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_7_1.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_8_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_8_1.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_9_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_9_1.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/circos.md +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/circos_files/circos_1_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/circos_files/circos_1_1.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/circos_files/circos_2_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/correlation.md +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/correlation_files/correlation_2_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/correlation_files/correlation_3_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/correlation_files/correlation_4_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/correlation_files/correlation_5_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/correlation_files/correlation_6_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/correlation_files/correlation_7_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/correlation_files/correlation_8_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/correlation_files/correlation_9_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/matrix.md +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/matrix_files/matrix_2_1.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/matrix_files/matrix_3_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/matrix_files/matrix_4_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/matrix_files/matrix_5_1.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/matrix_files/matrix_6_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/matrix_files/matrix_7_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/multi_groups.md +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/multi_groups_files/multi_groups_2_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/multi_groups_files/multi_groups_3_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/multi_groups_files/multi_groups_5_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/multi_groups_files/multi_groups_6_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/multi_groups_files/multi_groups_8_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/multi_groups_files/multi_groups_9_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group.md +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_11_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_12_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_13_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_14_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_16_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_17_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_19_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_20_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_21_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_22_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_23_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_24_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_25_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_26_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_27_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_28_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_2_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_30_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_31_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_33_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_34_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_35_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_36_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_37_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_39_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_3_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_40_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_5_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_6_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_6_1.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_7_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_8_0.png +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/mkdocs.yml +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/overrides/main.html +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/release-please-config.json +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/__init__.py +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/brain_surface_deprecated.py +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/circos.py +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/correlation.py +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/atlas_tables/chimpanzee_bna.csv +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/atlas_tables/human_bna.csv +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/atlas_tables/human_glasser.csv +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/atlas_tables/macaque_bna.csv +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/atlas_tables/macaque_charm5.csv +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/atlas_tables/macaque_charm5_add_13_sgms.csv +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/atlas_tables/macaque_charm6.csv +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/atlas_tables/macaque_d99.csv +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/chimpanzee_BNA/ChimpBNA.L.32k_fs_LR.label.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/chimpanzee_BNA/ChimpBNA.R.32k_fs_LR.label.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/human_BNA/fsaverage.L.BNA.32k_fs_LR.label.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/human_BNA/fsaverage.R.BNA.32k_fs_LR.label.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/human_Glasser/fsaverage.L.Glasser.32k_fs_LR.label.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/human_Glasser/fsaverage.R.Glasser.32k_fs_LR.label.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/macaque_BNA/MBNA_124_32k_L.label.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/macaque_BNA/MBNA_124_32k_R.label.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/macaque_CHARM5/L.charm5.label.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/macaque_CHARM5/R.charm5.label.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/macaque_CHARM6/L.charm6.label.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/macaque_CHARM6/R.charm6.label.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/macaque_D99/L.d99.label.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/macaque_D99/R.d99.label.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/chimpanzee_BNA/ChimpYerkes29_v1.2.L.midthickness.32k_fs_LR.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/chimpanzee_BNA/ChimpYerkes29_v1.2.L.veryinflated.32k_fs_LR.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/chimpanzee_BNA/ChimpYerkes29_v1.2.R.midthickness.32k_fs_LR.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/chimpanzee_BNA/ChimpYerkes29_v1.2.R.veryinflated.32k_fs_LR.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/human_fsLR/README.md +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/human_fsLR/tpl-fsLR_den-32k_hemi-L_desc-nomedialwall_dparc.label.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/human_fsLR/tpl-fsLR_den-32k_hemi-L_desc-sulc_midthickness.shape.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/human_fsLR/tpl-fsLR_den-32k_hemi-L_desc-vaavg_midthickness.shape.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/human_fsLR/tpl-fsLR_den-32k_hemi-L_inflated.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/human_fsLR/tpl-fsLR_den-32k_hemi-L_midthickness.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/human_fsLR/tpl-fsLR_den-32k_hemi-L_sphere.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/human_fsLR/tpl-fsLR_den-32k_hemi-L_veryinflated.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/human_fsLR/tpl-fsLR_den-32k_hemi-R_desc-nomedialwall_dparc.label.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/human_fsLR/tpl-fsLR_den-32k_hemi-R_desc-sulc_midthickness.shape.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/human_fsLR/tpl-fsLR_den-32k_hemi-R_desc-vaavg_midthickness.shape.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/human_fsLR/tpl-fsLR_den-32k_hemi-R_inflated.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/human_fsLR/tpl-fsLR_den-32k_hemi-R_midthickness.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/human_fsLR/tpl-fsLR_den-32k_hemi-R_sphere.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/human_fsLR/tpl-fsLR_den-32k_hemi-R_veryinflated.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/human_fsLR/tpl-fsLR_space-fsaverage_den-32k_hemi-L_sphere.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/human_fsLR/tpl-fsLR_space-fsaverage_den-32k_hemi-R_sphere.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_BNA/civm.L.inflated.32k_fs_LR.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_BNA/civm.L.midthickness.32k_fs_LR.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_BNA/civm.L.pial.32k_fs_LR.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_BNA/civm.L.veryinflated.32k_fs_LR.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_BNA/civm.L.white.32k_fs_LR.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_BNA/civm.R.inflated.32k_fs_LR.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_BNA/civm.R.midthickness.32k_fs_LR.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_BNA/civm.R.pial.32k_fs_LR.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_BNA/civm.R.veryinflated.32k_fs_LR.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_BNA/civm.R.white.32k_fs_LR.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/L.gray_surface.inf_300.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/L.gray_surface.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/L.mid_surface.inf_300.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/L.mid_surface.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/L.white_surface.inf_300.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/L.white_surface.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/R.gray_surface.inf_300.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/R.gray_surface.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/R.mid_surface.inf_300.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/R.mid_surface.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/R.white_surface.inf_300.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/R.white_surface.surf.gii +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/volumes/macaque_NMT2/CHARM5_add_13_sgms_asym.nii.gz +0 -0
- {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/matrix.py +0 -0
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
#
|
|
8
8
|
# Source repository: https://github.com/actions/dependency-review-action
|
|
9
9
|
# Public documentation: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
|
|
10
|
-
name:
|
|
10
|
+
name: "Dependency review"
|
|
11
11
|
on:
|
|
12
12
|
pull_request:
|
|
13
|
-
branches: [
|
|
13
|
+
branches: ["main", "dev"]
|
|
14
14
|
|
|
15
15
|
# If using a dependency submission action in this workflow this permission will need to be set to:
|
|
16
16
|
#
|
|
@@ -27,9 +27,9 @@ jobs:
|
|
|
27
27
|
dependency-review:
|
|
28
28
|
runs-on: ubuntu-latest
|
|
29
29
|
steps:
|
|
30
|
-
- name:
|
|
30
|
+
- name: "Checkout repository"
|
|
31
31
|
uses: actions/checkout@v4
|
|
32
|
-
- name:
|
|
32
|
+
- name: "Dependency Review"
|
|
33
33
|
uses: actions/dependency-review-action@v4
|
|
34
34
|
# Commonly enabled options, see https://github.com/actions/dependency-review-action#configuration-options for all available options.
|
|
35
35
|
with:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
name: Website Deploy
|
|
1
|
+
name: Website Deploy
|
|
2
2
|
on:
|
|
3
3
|
push:
|
|
4
4
|
branches:
|
|
@@ -19,14 +19,14 @@ jobs:
|
|
|
19
19
|
- uses: actions/setup-python@v5
|
|
20
20
|
with:
|
|
21
21
|
python-version: 3.x
|
|
22
|
-
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
|
|
22
|
+
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
|
|
23
23
|
- uses: actions/cache@v4
|
|
24
24
|
with:
|
|
25
25
|
key: mkdocs-material-${{ env.cache_id }}
|
|
26
|
-
path: .cache
|
|
26
|
+
path: .cache
|
|
27
27
|
restore-keys: |
|
|
28
28
|
mkdocs-material-
|
|
29
|
-
|
|
29
|
+
|
|
30
30
|
- name: Check if CHANGELOG.md has changed
|
|
31
31
|
id: changelog_check
|
|
32
32
|
run: |
|
|
@@ -68,8 +68,8 @@ jobs:
|
|
|
68
68
|
run: |
|
|
69
69
|
summary="${{ steps.inference.outputs.response }}"
|
|
70
70
|
# 使用 printf 保证换行缩进和变量替换都准确
|
|
71
|
-
mkdir overrides
|
|
72
|
-
printf '{%% extends "base.html" %%}\n\n{%% block announce %%}\n <strong>📢 %s
|
|
71
|
+
mkdir -p overrides
|
|
72
|
+
printf '{%% extends "base.html" %%}\n\n{%% block announce %%}\n <strong>📢 %s <a href="/plotfig/changelog">点击查看详情</a></strong>\n{%% endblock %%}\n' "$summary" > overrides/main.html
|
|
73
73
|
|
|
74
74
|
- name: Copy CHANGELOG.md to docs/
|
|
75
75
|
run: cp CHANGELOG.md docs/changelog.md
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
## 1.3.3 (2025-07-29)
|
|
2
|
-
|
|
3
|
-
### Fix
|
|
4
|
-
|
|
5
|
-
- **bar**: handle empty significance plot without error
|
|
6
|
-
|
|
7
1
|
## [1.4.0](https://github.com/RicardoRyn/plotfig/compare/1.3.3...v1.4.0) (2025-07-30)
|
|
8
2
|
|
|
9
3
|
|
|
@@ -18,6 +12,35 @@
|
|
|
18
12
|
* **announce:** remove main.html file ([09c3cde](https://github.com/RicardoRyn/plotfig/commit/09c3cde56f8d27690e9eea1250c14152508046c7))
|
|
19
13
|
* **bar:** add usage example for `color_alpha` ([303e2a3](https://github.com/RicardoRyn/plotfig/commit/303e2a39d29e516ebded6504ba04a357d8428630))
|
|
20
14
|
|
|
15
|
+
## [1.5.0](https://github.com/RicardoRyn/plotfig/compare/v1.4.0...v1.5.0) (2025-08-07)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* **bar:** support combining multiple statistical test methods ([34b6960](https://github.com/RicardoRyn/plotfig/commit/34b6960ff705468154bc5fbf75b9917ba8ac64fd))
|
|
21
|
+
* **connec:** Add `line_color` parameter to customize connection line colors ([e4de41e](https://github.com/RicardoRyn/plotfig/commit/e4de41effe495767cde0980ce5e2cee458d8b3a8))
|
|
22
|
+
* **连接:** 添加 `line_color` 参数以自定义连接线颜色 ([e4de41e](https://github.com/RicardoRyn/plotfig/commit/e4de41effe495767cde0980ce5e2cee458d8b3a8))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Documentation
|
|
26
|
+
|
|
27
|
+
* **changelog:** fix the wrong order ([736dc68](https://github.com/RicardoRyn/plotfig/commit/736dc682aac3208bd4c1518830b7c61f5d620e28))
|
|
28
|
+
* **surface:** Add available atlas names in function documentation ([b2de1eb](https://github.com/RicardoRyn/plotfig/commit/b2de1ebd91e09764da996e54eddf7632eee0b6c3))
|
|
29
|
+
* **surface:** 在函数注释文档中补充可用atlas名字 ([b2de1eb](https://github.com/RicardoRyn/plotfig/commit/b2de1ebd91e09764da996e54eddf7632eee0b6c3))
|
|
30
|
+
* **web:** Change the default statement in the announcement bar ([47bfe81](https://github.com/RicardoRyn/plotfig/commit/47bfe81b2397b8122aff603fa3a00d0997fcd843))
|
|
31
|
+
* **web:** change web content and Welcome to Issues & PRs ([0ff2582](https://github.com/RicardoRyn/plotfig/commit/0ff25822e315e14f29ba7d1c466d3f3e429fb70b))
|
|
32
|
+
* **web:** Remove the self-referential link on the webpage homepage ([0b1cf14](https://github.com/RicardoRyn/plotfig/commit/0b1cf1448a765fb90a68080426acc0e07452b253))
|
|
33
|
+
* **web:** 删除网页主页中对该网页的跳转 ([0b1cf14](https://github.com/RicardoRyn/plotfig/commit/0b1cf1448a765fb90a68080426acc0e07452b253))
|
|
34
|
+
* **web:** 更改公告栏中的默认语句 ([47bfe81](https://github.com/RicardoRyn/plotfig/commit/47bfe81b2397b8122aff603fa3a00d0997fcd843))
|
|
35
|
+
* **web:** 更改网页上部分表述以及欢迎贡献 ([0ff2582](https://github.com/RicardoRyn/plotfig/commit/0ff25822e315e14f29ba7d1c466d3f3e429fb70b))
|
|
36
|
+
|
|
37
|
+
## 1.3.3 (2025-07-29)
|
|
38
|
+
|
|
39
|
+
### Fix
|
|
40
|
+
|
|
41
|
+
- **bar**: handle empty significance plot without error
|
|
42
|
+
|
|
43
|
+
|
|
21
44
|
## 1.3.2 (2025-07-29)
|
|
22
45
|
|
|
23
46
|
### Fix
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: plotfig
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.5.0
|
|
4
4
|
Summary: Scientific plotting package for Cognitive neuroscience
|
|
5
5
|
Author-email: Ricardo Ryn <ricardoRyn1317@gmail.com>
|
|
6
6
|
License-File: LICENSE
|
|
@@ -65,31 +65,17 @@ cd plotfig
|
|
|
65
65
|
pip install .
|
|
66
66
|
```
|
|
67
67
|
|
|
68
|
-
## 贡献指南
|
|
69
|
-
|
|
70
|
-
如果您希望参与 `plotfig` 的开发,或者想体验尚未正式发布的新功能和最新修复的 bug,可以选择以开发模式安装项目。
|
|
71
|
-
|
|
72
|
-
这种“可编辑模式(editable mode)”安装方式允许您对本地源码的修改立即生效,非常适合开发、调试和贡献代码。
|
|
73
|
-
|
|
74
|
-
推荐先 Fork 仓库,然后克隆您自己的 Fork:
|
|
75
|
-
|
|
76
|
-
```bash
|
|
77
|
-
git clone -b dev https://github.com/<your-username>/plotfig.git
|
|
78
|
-
cd plotfig
|
|
79
|
-
pip install -e .
|
|
80
|
-
```
|
|
81
|
-
|
|
82
68
|
## 依赖要求
|
|
83
69
|
|
|
84
70
|
`plotfig` 依赖若干核心库,这些依赖将在安装过程中自动处理:
|
|
85
71
|
|
|
86
|
-
- [matplotlib](https://matplotlib.org/) ≥ 3.10.
|
|
87
|
-
- [mne-connectivity](https://mne.tools/mne-connectivity/stable/index.html) ≥ 0.7.
|
|
88
|
-
- [nibabel](https://nipy.org/nibabel/) ≥ 5.3.
|
|
89
|
-
- [numpy](https://numpy.org/) ≥ 2.2.4
|
|
90
|
-
- [pandas](https://pandas.pydata.org/) ≥ 2.2.
|
|
91
|
-
- [plotly](https://plotly.com/) ≥ 6.0.1
|
|
92
|
-
- [scipy](https://scipy.org/) ≥ 1.15.
|
|
72
|
+
- [matplotlib](https://matplotlib.org/) ≥ 3.10.
|
|
73
|
+
- [mne-connectivity](https://mne.tools/mne-connectivity/stable/index.html) ≥ 0.7.
|
|
74
|
+
- [nibabel](https://nipy.org/nibabel/) ≥ 5.3.
|
|
75
|
+
- [numpy](https://numpy.org/) ≥ 2.2.4
|
|
76
|
+
- [pandas](https://pandas.pydata.org/) ≥ 2.2.
|
|
77
|
+
- [plotly](https://plotly.com/) ≥ 6.0.1
|
|
78
|
+
- [scipy](https://scipy.org/) ≥ 1.15.
|
|
93
79
|
- [surfplot](https://github.com/danjgale/surfplot) 需使用其 GitHub 仓库中的最新版,而非 PyPI 上的版本,因后者尚未包含所需功能。
|
|
94
80
|
|
|
95
81
|
> ⚠️ **指定 `surfplot` 版本**
|
|
@@ -100,7 +86,7 @@ pip install -e .
|
|
|
100
86
|
> # 卸载旧版本
|
|
101
87
|
> pip uninstall surfplot
|
|
102
88
|
>
|
|
103
|
-
> #
|
|
89
|
+
> # 克隆源码并安装
|
|
104
90
|
> git clone --depth 1 https://github.com/danjgale/surfplot.git
|
|
105
91
|
> cd surfplot
|
|
106
92
|
> pip install .
|
|
@@ -109,3 +95,23 @@ pip install -e .
|
|
|
109
95
|
> cd ..
|
|
110
96
|
> rm -rf surfplot
|
|
111
97
|
> ```
|
|
98
|
+
|
|
99
|
+
## 贡献指南
|
|
100
|
+
|
|
101
|
+
如果您希望参与 `plotfig` 的开发,或者想体验尚未正式发布的新功能和最新修复的 bug,可以选择以开发模式安装项目。
|
|
102
|
+
|
|
103
|
+
这种“可编辑模式(editable mode)”安装方式允许您对本地源码的修改立即生效,非常适合开发、调试和贡献代码。
|
|
104
|
+
|
|
105
|
+
推荐先 Fork 仓库,然后克隆您自己的 Fork:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
git clone -b dev https://github.com/<your-username>/plotfig.git
|
|
109
|
+
cd plotfig
|
|
110
|
+
pip install -e .
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**欢迎提交 Issue 或 PR!**
|
|
114
|
+
|
|
115
|
+
无论是 Bug 报告、功能建议,还是文档改进,都非常欢迎你的参与。
|
|
116
|
+
如果你在使用过程中遇到了问题,或者有更好的想法,欢迎在 [Issue](https://github.com/RicardoRyn/plotfig/issues) 中提出。
|
|
117
|
+
也可以直接提交 [PR](https://github.com/RicardoRyn/plotfig/pulls),一起变得更强 🙌!
|
|
@@ -47,31 +47,17 @@ cd plotfig
|
|
|
47
47
|
pip install .
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
## 贡献指南
|
|
51
|
-
|
|
52
|
-
如果您希望参与 `plotfig` 的开发,或者想体验尚未正式发布的新功能和最新修复的 bug,可以选择以开发模式安装项目。
|
|
53
|
-
|
|
54
|
-
这种“可编辑模式(editable mode)”安装方式允许您对本地源码的修改立即生效,非常适合开发、调试和贡献代码。
|
|
55
|
-
|
|
56
|
-
推荐先 Fork 仓库,然后克隆您自己的 Fork:
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
git clone -b dev https://github.com/<your-username>/plotfig.git
|
|
60
|
-
cd plotfig
|
|
61
|
-
pip install -e .
|
|
62
|
-
```
|
|
63
|
-
|
|
64
50
|
## 依赖要求
|
|
65
51
|
|
|
66
52
|
`plotfig` 依赖若干核心库,这些依赖将在安装过程中自动处理:
|
|
67
53
|
|
|
68
|
-
- [matplotlib](https://matplotlib.org/) ≥ 3.10.
|
|
69
|
-
- [mne-connectivity](https://mne.tools/mne-connectivity/stable/index.html) ≥ 0.7.
|
|
70
|
-
- [nibabel](https://nipy.org/nibabel/) ≥ 5.3.
|
|
71
|
-
- [numpy](https://numpy.org/) ≥ 2.2.4
|
|
72
|
-
- [pandas](https://pandas.pydata.org/) ≥ 2.2.
|
|
73
|
-
- [plotly](https://plotly.com/) ≥ 6.0.1
|
|
74
|
-
- [scipy](https://scipy.org/) ≥ 1.15.
|
|
54
|
+
- [matplotlib](https://matplotlib.org/) ≥ 3.10.
|
|
55
|
+
- [mne-connectivity](https://mne.tools/mne-connectivity/stable/index.html) ≥ 0.7.
|
|
56
|
+
- [nibabel](https://nipy.org/nibabel/) ≥ 5.3.
|
|
57
|
+
- [numpy](https://numpy.org/) ≥ 2.2.4
|
|
58
|
+
- [pandas](https://pandas.pydata.org/) ≥ 2.2.
|
|
59
|
+
- [plotly](https://plotly.com/) ≥ 6.0.1
|
|
60
|
+
- [scipy](https://scipy.org/) ≥ 1.15.
|
|
75
61
|
- [surfplot](https://github.com/danjgale/surfplot) 需使用其 GitHub 仓库中的最新版,而非 PyPI 上的版本,因后者尚未包含所需功能。
|
|
76
62
|
|
|
77
63
|
> ⚠️ **指定 `surfplot` 版本**
|
|
@@ -82,7 +68,7 @@ pip install -e .
|
|
|
82
68
|
> # 卸载旧版本
|
|
83
69
|
> pip uninstall surfplot
|
|
84
70
|
>
|
|
85
|
-
> #
|
|
71
|
+
> # 克隆源码并安装
|
|
86
72
|
> git clone --depth 1 https://github.com/danjgale/surfplot.git
|
|
87
73
|
> cd surfplot
|
|
88
74
|
> pip install .
|
|
@@ -91,3 +77,23 @@ pip install -e .
|
|
|
91
77
|
> cd ..
|
|
92
78
|
> rm -rf surfplot
|
|
93
79
|
> ```
|
|
80
|
+
|
|
81
|
+
## 贡献指南
|
|
82
|
+
|
|
83
|
+
如果您希望参与 `plotfig` 的开发,或者想体验尚未正式发布的新功能和最新修复的 bug,可以选择以开发模式安装项目。
|
|
84
|
+
|
|
85
|
+
这种“可编辑模式(editable mode)”安装方式允许您对本地源码的修改立即生效,非常适合开发、调试和贡献代码。
|
|
86
|
+
|
|
87
|
+
推荐先 Fork 仓库,然后克隆您自己的 Fork:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
git clone -b dev https://github.com/<your-username>/plotfig.git
|
|
91
|
+
cd plotfig
|
|
92
|
+
pip install -e .
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**欢迎提交 Issue 或 PR!**
|
|
96
|
+
|
|
97
|
+
无论是 Bug 报告、功能建议,还是文档改进,都非常欢迎你的参与。
|
|
98
|
+
如果你在使用过程中遇到了问题,或者有更好的想法,欢迎在 [Issue](https://github.com/RicardoRyn/plotfig/issues) 中提出。
|
|
99
|
+
也可以直接提交 [PR](https://github.com/RicardoRyn/plotfig/pulls),一起变得更强 🙌!
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
# 安装
|
|
2
|
+
|
|
1
3
|
## 普通安装
|
|
2
4
|
|
|
3
5
|
`plotfig` 支持通过 `pip` 或源码安装,要求 Python 3.11 及以上版本。
|
|
4
6
|
|
|
5
|
-
|
|
6
7
|
**使用 pip 安装 <small>(推荐)</small>**
|
|
7
8
|
|
|
8
9
|
```bash
|
|
@@ -17,31 +18,17 @@ cd plotfig
|
|
|
17
18
|
pip install .
|
|
18
19
|
```
|
|
19
20
|
|
|
20
|
-
## 贡献指南
|
|
21
|
-
|
|
22
|
-
如果您希望参与 `plotfig` 的开发,或者想体验尚未正式发布的新功能和最新修复的 bug,可以选择以开发模式安装项目。
|
|
23
|
-
|
|
24
|
-
这种“可编辑模式(editable mode)”安装方式允许您对本地源码的修改立即生效,非常适合开发、调试和贡献代码。
|
|
25
|
-
|
|
26
|
-
推荐先 Fork 仓库,然后克隆您自己的 Fork:
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
git clone -b dev https://github.com/<your-username>/plotfig.git
|
|
30
|
-
cd plotfig
|
|
31
|
-
pip install -e .
|
|
32
|
-
```
|
|
33
|
-
|
|
34
21
|
## 依赖要求
|
|
35
22
|
|
|
36
23
|
`plotfig` 依赖若干核心库,这些依赖将在安装过程中自动处理:
|
|
37
24
|
|
|
38
|
-
- [matplotlib](https://matplotlib.org/) ≥ 3.10.1
|
|
39
|
-
- [mne-connectivity](https://mne.tools/mne-connectivity/stable/index.html) ≥ 0.7.0
|
|
40
|
-
- [nibabel](https://nipy.org/nibabel/) ≥ 5.3.2
|
|
41
|
-
- [numpy](https://numpy.org/) ≥ 2.2.4
|
|
42
|
-
- [pandas](https://pandas.pydata.org/) ≥ 2.2.3
|
|
43
|
-
- [plotly](https://plotly.com/) ≥ 6.0.1
|
|
44
|
-
- [scipy](https://scipy.org/) ≥ 1.15.2
|
|
25
|
+
- [matplotlib](https://matplotlib.org/) ≥ 3.10.1
|
|
26
|
+
- [mne-connectivity](https://mne.tools/mne-connectivity/stable/index.html) ≥ 0.7.0
|
|
27
|
+
- [nibabel](https://nipy.org/nibabel/) ≥ 5.3.2
|
|
28
|
+
- [numpy](https://numpy.org/) ≥ 2.2.4
|
|
29
|
+
- [pandas](https://pandas.pydata.org/) ≥ 2.2.3
|
|
30
|
+
- [plotly](https://plotly.com/) ≥ 6.0.1
|
|
31
|
+
- [scipy](https://scipy.org/) ≥ 1.15.2
|
|
45
32
|
- [surfplot](https://github.com/danjgale/surfplot) 需使用其 GitHub 仓库中的最新版,而非 PyPI 上的版本,因后者尚未包含所需功能。
|
|
46
33
|
|
|
47
34
|
!!! warning "指定 `surfplot` 版本"
|
|
@@ -52,7 +39,7 @@ pip install -e .
|
|
|
52
39
|
# 卸载旧版本
|
|
53
40
|
pip uninstall surfplot
|
|
54
41
|
|
|
55
|
-
#
|
|
42
|
+
# 克隆源码并安装
|
|
56
43
|
git clone --depth 1 https://github.com/danjgale/surfplot.git
|
|
57
44
|
cd surfplot
|
|
58
45
|
pip install .
|
|
@@ -61,3 +48,23 @@ pip install -e .
|
|
|
61
48
|
cd ..
|
|
62
49
|
rm -rf surfplot
|
|
63
50
|
```
|
|
51
|
+
|
|
52
|
+
## 贡献指南
|
|
53
|
+
|
|
54
|
+
如果您希望参与 `plotfig` 的开发,或者想体验尚未正式发布的新功能和最新修复的 bug,可以选择以开发模式安装项目。
|
|
55
|
+
|
|
56
|
+
这种“可编辑模式(editable mode)”安装方式允许您对本地源码的修改立即生效,非常适合开发、调试和贡献代码。
|
|
57
|
+
|
|
58
|
+
推荐先 Fork 仓库,然后克隆您自己的 Fork:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
git clone -b dev https://github.com/<your-username>/plotfig.git
|
|
62
|
+
cd plotfig
|
|
63
|
+
pip install -e .
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**欢迎提交 Issue 或 PR!**
|
|
67
|
+
|
|
68
|
+
无论是 Bug 报告、功能建议,还是文档改进,都非常欢迎你的参与。
|
|
69
|
+
如果你在使用过程中遇到了问题,或者有更好的想法,欢迎在 [Issue](https://github.com/RicardoRyn/plotfig/issues) 中提出。
|
|
70
|
+
也可以直接提交 [PR](https://github.com/RicardoRyn/plotfig/pulls),一起变得更强 🙌!
|
|
@@ -65,6 +65,16 @@ data = {"lh_V1": 1, "rh_MT": 1.5}
|
|
|
65
65
|
ax = plot_human_brain_figure(data)
|
|
66
66
|
```
|
|
67
67
|
|
|
68
|
+
C:\Users\RicardoRyn\AppData\Local\Temp\ipykernel_32020\3935563387.py:5: DeprecationWarning: plot_human_brain_figure 即将弃用,请使用 plot_brain_surface_figure 替代。未来版本将移除本函数。
|
|
69
|
+
ax = plot_human_brain_figure(data)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+

|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
68
78
|
|
|
69
79
|
```python
|
|
70
80
|
import matplotlib.pyplot as plt
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "plotfig"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.5.0"
|
|
4
4
|
description = "Scientific plotting package for Cognitive neuroscience"
|
|
5
5
|
keywords = ["neuroscience", "plotting", "visualization"]
|
|
6
6
|
readme = "README.md"
|
|
@@ -21,6 +21,7 @@ dependencies = [
|
|
|
21
21
|
|
|
22
22
|
[dependency-groups]
|
|
23
23
|
dev = [
|
|
24
|
+
"ipykernel>=6.30.1",
|
|
24
25
|
"mkdocs-git-revision-date-localized-plugin>=1.4.7",
|
|
25
26
|
"mkdocs-material>=9.6.14",
|
|
26
27
|
"mkdocs-minify-plugin>=0.8.0",
|
|
@@ -10,6 +10,9 @@ from matplotlib.colors import LinearSegmentedColormap, to_rgba
|
|
|
10
10
|
from matplotlib.patches import Polygon
|
|
11
11
|
from scipy import stats
|
|
12
12
|
|
|
13
|
+
# 设置警告过滤器,显示所有警告
|
|
14
|
+
warnings.simplefilter("always")
|
|
15
|
+
|
|
13
16
|
# 类型别名
|
|
14
17
|
Num = int | float # 可同时接受int和float的类型
|
|
15
18
|
NumArray = list[Num] | npt.NDArray[np.float64] # 数字数组类型
|
|
@@ -106,6 +109,7 @@ def set_yaxis(
|
|
|
106
109
|
ax.yaxis.set_major_formatter(FuncFormatter(lambda x, pos: f"{x:.0%}"))
|
|
107
110
|
|
|
108
111
|
|
|
112
|
+
# 统计相关
|
|
109
113
|
def perform_stat_test(
|
|
110
114
|
data1: NumArray | None = None,
|
|
111
115
|
data2: NumArray | None = None,
|
|
@@ -130,6 +134,29 @@ def perform_stat_test(
|
|
|
130
134
|
return stat, p
|
|
131
135
|
|
|
132
136
|
|
|
137
|
+
def determine_test_modle(data, method, p_list=None, popmean=0):
|
|
138
|
+
comparisons = []
|
|
139
|
+
idx = 0
|
|
140
|
+
if method != "ttest_1samp":
|
|
141
|
+
for i in range(len(data)):
|
|
142
|
+
for j in range(i + 1, len(data)):
|
|
143
|
+
if method == "external":
|
|
144
|
+
p = p_list[idx]
|
|
145
|
+
idx += 1
|
|
146
|
+
else:
|
|
147
|
+
_, p = perform_stat_test(
|
|
148
|
+
data1=data[i], data2=data[j], method=method
|
|
149
|
+
)
|
|
150
|
+
if p <= 0.05:
|
|
151
|
+
comparisons.append((i, j, p))
|
|
152
|
+
else:
|
|
153
|
+
for i in range(len(data)):
|
|
154
|
+
_, p = perform_stat_test(data1=data[i], popmean=popmean, method=method)
|
|
155
|
+
if p <= 0.05:
|
|
156
|
+
comparisons.append((i, p))
|
|
157
|
+
return comparisons
|
|
158
|
+
|
|
159
|
+
|
|
133
160
|
def annotate_significance(
|
|
134
161
|
ax: Axes,
|
|
135
162
|
comparisons: list[tuple[int, int, float]],
|
|
@@ -168,7 +195,7 @@ def annotate_significance(
|
|
|
168
195
|
_stars(pval, (i + j) / 2, y + star_offset, color, fontsize)
|
|
169
196
|
elif len(comparisons[0]) == 2:
|
|
170
197
|
for i, pval in comparisons:
|
|
171
|
-
y = y_base
|
|
198
|
+
y = y_base
|
|
172
199
|
_stars(pval, i, y + star_offset, color, fontsize)
|
|
173
200
|
|
|
174
201
|
|
|
@@ -183,42 +210,63 @@ def statistics(
|
|
|
183
210
|
asterisk_fontsize,
|
|
184
211
|
asterisk_color,
|
|
185
212
|
):
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
213
|
+
if isinstance(test_method, list):
|
|
214
|
+
if len(test_method) > 2 or (
|
|
215
|
+
len(test_method) == 2 and "ttest_1samp" not in test_method
|
|
216
|
+
):
|
|
217
|
+
raise ValueError(
|
|
218
|
+
"test_method 最多只能有2个元素。且当元素数量为2时,其中之一必须是 'ttest_1samp'。"
|
|
219
|
+
)
|
|
220
|
+
|
|
221
|
+
for method in test_method:
|
|
222
|
+
comparisons = determine_test_modle(data, method, p_list, popmean)
|
|
223
|
+
if not comparisons:
|
|
224
|
+
return
|
|
225
|
+
|
|
226
|
+
y_max = ax.get_ylim()[1]
|
|
227
|
+
interval = (y_max - np.max(all_values)) / (len(comparisons) + 1)
|
|
228
|
+
|
|
229
|
+
color = (
|
|
230
|
+
"b"
|
|
231
|
+
if len(test_method) > 1 and method == "ttest_1samp"
|
|
232
|
+
else asterisk_color
|
|
233
|
+
)
|
|
234
|
+
|
|
235
|
+
annotate_significance(
|
|
236
|
+
ax,
|
|
237
|
+
comparisons,
|
|
238
|
+
np.max(all_values),
|
|
239
|
+
interval,
|
|
240
|
+
line_color=statistical_line_color,
|
|
241
|
+
star_offset=interval / 5,
|
|
242
|
+
fontsize=asterisk_fontsize,
|
|
243
|
+
color=color,
|
|
244
|
+
)
|
|
200
245
|
else:
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
246
|
+
warnings.warn(
|
|
247
|
+
"请使用列表形式传递 test_method 参数,例如 test_method=['ttest_ind']。字符串形式 test_method='ttest_ind' 将在后续版本中弃用。",
|
|
248
|
+
DeprecationWarning,
|
|
249
|
+
stacklevel=1,
|
|
250
|
+
)
|
|
251
|
+
comparisons = determine_test_modle(data, test_method, p_list, popmean)
|
|
252
|
+
if not comparisons:
|
|
253
|
+
return
|
|
254
|
+
|
|
255
|
+
y_max = ax.get_ylim()[1]
|
|
256
|
+
interval = (y_max - np.max(all_values)) / (len(comparisons) + 1)
|
|
257
|
+
annotate_significance(
|
|
258
|
+
ax,
|
|
259
|
+
comparisons,
|
|
260
|
+
np.max(all_values),
|
|
261
|
+
interval,
|
|
262
|
+
line_color=statistical_line_color,
|
|
263
|
+
star_offset=interval / 5,
|
|
264
|
+
fontsize=asterisk_fontsize,
|
|
265
|
+
color=asterisk_color,
|
|
266
|
+
)
|
|
220
267
|
|
|
221
268
|
|
|
269
|
+
# 可调用接口函数
|
|
222
270
|
def plot_one_group_bar_figure(
|
|
223
271
|
data: list[NumArray],
|
|
224
272
|
ax: Axes | None = None,
|
|
@@ -245,8 +293,6 @@ def plot_one_group_bar_figure(
|
|
|
245
293
|
asterisk_color: str = "k",
|
|
246
294
|
**kwargs: Any,
|
|
247
295
|
) -> None:
|
|
248
|
-
|
|
249
|
-
|
|
250
296
|
"""绘制单组柱状图,包含散点、误差条和统计显著性标记。
|
|
251
297
|
|
|
252
298
|
Args:
|
|
@@ -319,7 +365,12 @@ def plot_one_group_bar_figure(
|
|
|
319
365
|
ax.imshow(gradient, aspect="auto", cmap=cmap, extent=extent, zorder=0)
|
|
320
366
|
else:
|
|
321
367
|
ax.bar(
|
|
322
|
-
x_positions,
|
|
368
|
+
x_positions,
|
|
369
|
+
means,
|
|
370
|
+
width=width,
|
|
371
|
+
color=colors,
|
|
372
|
+
alpha=color_alpha,
|
|
373
|
+
edgecolor=edgecolor,
|
|
323
374
|
)
|
|
324
375
|
|
|
325
376
|
ax.errorbar(
|
|
@@ -442,7 +493,9 @@ def plot_one_group_violin_figure(
|
|
|
442
493
|
labels_name = labels_name or [str(i) for i in range(len(data))]
|
|
443
494
|
colors = colors or ["gray"] * len(data)
|
|
444
495
|
|
|
445
|
-
def _draw_gradient_violin(
|
|
496
|
+
def _draw_gradient_violin(
|
|
497
|
+
ax, data, pos, width=width, c1="red", c2="blue", color_alpha=1
|
|
498
|
+
):
|
|
446
499
|
# KDE估计
|
|
447
500
|
kde = stats.gaussian_kde(data)
|
|
448
501
|
buffer = (max(data) - min(data)) / 5
|
|
@@ -514,7 +567,9 @@ def plot_one_group_violin_figure(
|
|
|
514
567
|
c2 = colors_end[i]
|
|
515
568
|
else:
|
|
516
569
|
c1 = c2 = colors[i]
|
|
517
|
-
ymax, ymin = _draw_gradient_violin(
|
|
570
|
+
ymax, ymin = _draw_gradient_violin(
|
|
571
|
+
ax, d, pos=i, c1=c1, c2=c2, color_alpha=color_alpha
|
|
572
|
+
)
|
|
518
573
|
ymax_lst.append(ymax)
|
|
519
574
|
ymin_lst.append(ymin)
|
|
520
575
|
ymax = max(ymax_lst)
|
|
@@ -85,7 +85,7 @@ def _add_nodes_to_fig(fig, centroids_real, node_indices, nodes_name, nodes_size,
|
|
|
85
85
|
)
|
|
86
86
|
)
|
|
87
87
|
|
|
88
|
-
def _add_edges_to_fig(fig, connectome, centroids_real, nodes_name, scale_method, line_width):
|
|
88
|
+
def _add_edges_to_fig(fig, connectome, centroids_real, nodes_name, scale_method, line_width, line_color="#ff0000"):
|
|
89
89
|
'''将连接线绘制到图中'''
|
|
90
90
|
nodes_num = connectome.shape[0]
|
|
91
91
|
if np.all(connectome == 0):
|
|
@@ -101,7 +101,7 @@ def _add_edges_to_fig(fig, connectome, centroids_real, nodes_name, scale_method,
|
|
|
101
101
|
|
|
102
102
|
match scale_method:
|
|
103
103
|
case "width":
|
|
104
|
-
each_line_color =
|
|
104
|
+
each_line_color = line_color if value > 0 else "#0000ff"
|
|
105
105
|
each_line_width = abs(value / max_strength) * line_width
|
|
106
106
|
case "color":
|
|
107
107
|
norm_value = value / max_strength
|
|
@@ -159,6 +159,7 @@ def plot_brain_connection_figure(
|
|
|
159
159
|
scale_method: str = "",
|
|
160
160
|
line_width: Num = 10,
|
|
161
161
|
show_all_nodes: bool = False,
|
|
162
|
+
line_color: str = "#ff0000",
|
|
162
163
|
) -> None:
|
|
163
164
|
"""绘制大脑连接图,保存在指定的html文件中
|
|
164
165
|
|
|
@@ -199,7 +200,7 @@ def plot_brain_connection_figure(
|
|
|
199
200
|
|
|
200
201
|
centroids_real = _get_centroids_real(niigz_file)
|
|
201
202
|
_add_nodes_to_fig(fig, centroids_real, node_indices, nodes_name, nodes_size, nodes_color)
|
|
202
|
-
_add_edges_to_fig(fig, connectome, centroids_real, nodes_name, scale_method, line_width)
|
|
203
|
+
_add_edges_to_fig(fig, connectome, centroids_real, nodes_name, scale_method, line_width, line_color)
|
|
203
204
|
_finalize_figure(fig)
|
|
204
205
|
|
|
205
206
|
fig.write_html(output_file)
|
|
@@ -77,7 +77,7 @@ def plot_brain_surface_figure(
|
|
|
77
77
|
Args:
|
|
78
78
|
data (dict[str, float]): 包含脑区名称和对应数值的字典,键为脑区名称(如"lh_bankssts"),值为数值
|
|
79
79
|
species (str, optional): 物种名称,支持"human"、"chimpanzee"、"macaque". Defaults to "human".
|
|
80
|
-
atlas (str, optional):
|
|
80
|
+
atlas (str, optional): 脑图集名称,根据物种不同可选不同图集。人上包括"glasser"、"bna",黑猩猩上包括"bna",猕猴上包括"charm5"、"charm6"、"bna"以及"d99". Defaults to "glasser".
|
|
81
81
|
surf (str, optional): 大脑皮层表面类型,如"inflated"、"veryinflated"、"midthickness"等. Defaults to "veryinflated".
|
|
82
82
|
ax (Axes | None, optional): matplotlib的坐标轴对象,如果为None则使用当前坐标轴. Defaults to None.
|
|
83
83
|
vmin (Num | None, optional): 颜色映射的最小值,None表示使用数据中的最小值. Defaults to None.
|