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.
Files changed (203) hide show
  1. {plotfig-1.4.0 → plotfig-1.5.0}/.github/workflows/dependency_review.yml +4 -4
  2. {plotfig-1.4.0 → plotfig-1.5.0}/.github/workflows/python_publish.yml +0 -3
  3. {plotfig-1.4.0 → plotfig-1.5.0}/.github/workflows/release.yml +1 -1
  4. {plotfig-1.4.0 → plotfig-1.5.0}/.github/workflows/sync_to_gitee.yml +1 -1
  5. {plotfig-1.4.0 → plotfig-1.5.0}/.github/workflows/website_deploy.yml +6 -6
  6. plotfig-1.5.0/.release-please-manifest.json +3 -0
  7. {plotfig-1.4.0 → plotfig-1.5.0}/CHANGELOG.md +29 -6
  8. {plotfig-1.4.0 → plotfig-1.5.0}/PKG-INFO +29 -23
  9. {plotfig-1.4.0 → plotfig-1.5.0}/README.md +28 -22
  10. {plotfig-1.4.0 → plotfig-1.5.0}/docs/index.md +0 -2
  11. {plotfig-1.4.0 → plotfig-1.5.0}/docs/installation.md +30 -23
  12. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_deprecated.md +10 -0
  13. plotfig-1.5.0/docs/usage/brain_surface_deprecated_files/brain_surface_deprecated_7_1.png +0 -0
  14. {plotfig-1.4.0 → plotfig-1.5.0}/pyproject.toml +2 -1
  15. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/bar.py +94 -39
  16. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/brain_connection.py +4 -3
  17. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/brain_surface.py +1 -1
  18. {plotfig-1.4.0 → plotfig-1.5.0}/uv.lock +429 -1
  19. plotfig-1.4.0/.release-please-manifest.json +0 -3
  20. plotfig-1.4.0/docs/usage/brain_surface_deprecated_files/brain_surface_deprecated_7_1.png +0 -0
  21. {plotfig-1.4.0 → plotfig-1.5.0}/.github/workflows/summary_new_issues.yml +0 -0
  22. {plotfig-1.4.0 → plotfig-1.5.0}/.gitignore +0 -0
  23. {plotfig-1.4.0 → plotfig-1.5.0}/.python-version +0 -0
  24. {plotfig-1.4.0 → plotfig-1.5.0}/LICENSE +0 -0
  25. {plotfig-1.4.0 → plotfig-1.5.0}/docs/api/index.md +0 -0
  26. {plotfig-1.4.0 → plotfig-1.5.0}/docs/assets/atlas_csv/chimpanzee_bna.csv +0 -0
  27. {plotfig-1.4.0 → plotfig-1.5.0}/docs/assets/atlas_csv/human_bna.csv +0 -0
  28. {plotfig-1.4.0 → plotfig-1.5.0}/docs/assets/atlas_csv/human_glasser.csv +0 -0
  29. {plotfig-1.4.0 → plotfig-1.5.0}/docs/assets/atlas_csv/macaque_bna.csv +0 -0
  30. {plotfig-1.4.0 → plotfig-1.5.0}/docs/assets/atlas_csv/macaque_charm5.csv +0 -0
  31. {plotfig-1.4.0 → plotfig-1.5.0}/docs/assets/atlas_csv/macaque_charm6.csv +0 -0
  32. {plotfig-1.4.0 → plotfig-1.5.0}/docs/assets/atlas_csv/macaque_d99.csv +0 -0
  33. {plotfig-1.4.0 → plotfig-1.5.0}/docs/assets/plotfig.png +0 -0
  34. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_connectivity.md +0 -0
  35. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_connectivity_files/human.gif +0 -0
  36. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface.md +0 -0
  37. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_deprecated_files/brain_surface_deprecated_10_1.png +0 -0
  38. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_deprecated_files/brain_surface_deprecated_11_1.png +0 -0
  39. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_deprecated_files/brain_surface_deprecated_7_2.png +0 -0
  40. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_deprecated_files/brain_surface_deprecated_8_1.png +0 -0
  41. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_deprecated_files/brain_surface_deprecated_8_2.png +0 -0
  42. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_10_0.png +0 -0
  43. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_10_1.png +0 -0
  44. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_11_0.png +0 -0
  45. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_12_0.png +0 -0
  46. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_13_0.png +0 -0
  47. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_13_1.png +0 -0
  48. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_14_0.png +0 -0
  49. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_14_1.png +0 -0
  50. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_15_0.png +0 -0
  51. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_16_0.png +0 -0
  52. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_17_0.png +0 -0
  53. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_18_0.png +0 -0
  54. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_19_0.png +0 -0
  55. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_20_0.png +0 -0
  56. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_21_0.png +0 -0
  57. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_23_0.png +0 -0
  58. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_24_0.png +0 -0
  59. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_25_0.png +0 -0
  60. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_4_0.png +0 -0
  61. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_5_0.png +0 -0
  62. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_6_0.png +0 -0
  63. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_6_1.png +0 -0
  64. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_7_0.png +0 -0
  65. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_7_1.png +0 -0
  66. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_8_0.png +0 -0
  67. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_8_1.png +0 -0
  68. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_9_0.png +0 -0
  69. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/brain_surface_files/brain_surface_9_1.png +0 -0
  70. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/circos.md +0 -0
  71. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/circos_files/circos_1_0.png +0 -0
  72. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/circos_files/circos_1_1.png +0 -0
  73. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/circos_files/circos_2_0.png +0 -0
  74. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/correlation.md +0 -0
  75. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/correlation_files/correlation_2_0.png +0 -0
  76. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/correlation_files/correlation_3_0.png +0 -0
  77. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/correlation_files/correlation_4_0.png +0 -0
  78. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/correlation_files/correlation_5_0.png +0 -0
  79. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/correlation_files/correlation_6_0.png +0 -0
  80. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/correlation_files/correlation_7_0.png +0 -0
  81. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/correlation_files/correlation_8_0.png +0 -0
  82. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/correlation_files/correlation_9_0.png +0 -0
  83. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/matrix.md +0 -0
  84. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/matrix_files/matrix_2_1.png +0 -0
  85. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/matrix_files/matrix_3_0.png +0 -0
  86. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/matrix_files/matrix_4_0.png +0 -0
  87. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/matrix_files/matrix_5_1.png +0 -0
  88. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/matrix_files/matrix_6_0.png +0 -0
  89. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/matrix_files/matrix_7_0.png +0 -0
  90. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/multi_groups.md +0 -0
  91. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/multi_groups_files/multi_groups_2_0.png +0 -0
  92. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/multi_groups_files/multi_groups_3_0.png +0 -0
  93. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/multi_groups_files/multi_groups_5_0.png +0 -0
  94. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/multi_groups_files/multi_groups_6_0.png +0 -0
  95. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/multi_groups_files/multi_groups_8_0.png +0 -0
  96. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/multi_groups_files/multi_groups_9_0.png +0 -0
  97. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group.md +0 -0
  98. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_11_0.png +0 -0
  99. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_12_0.png +0 -0
  100. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_13_0.png +0 -0
  101. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_14_0.png +0 -0
  102. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_16_0.png +0 -0
  103. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_17_0.png +0 -0
  104. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_19_0.png +0 -0
  105. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_20_0.png +0 -0
  106. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_21_0.png +0 -0
  107. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_22_0.png +0 -0
  108. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_23_0.png +0 -0
  109. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_24_0.png +0 -0
  110. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_25_0.png +0 -0
  111. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_26_0.png +0 -0
  112. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_27_0.png +0 -0
  113. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_28_0.png +0 -0
  114. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_2_0.png +0 -0
  115. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_30_0.png +0 -0
  116. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_31_0.png +0 -0
  117. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_33_0.png +0 -0
  118. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_34_0.png +0 -0
  119. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_35_0.png +0 -0
  120. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_36_0.png +0 -0
  121. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_37_0.png +0 -0
  122. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_39_0.png +0 -0
  123. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_3_0.png +0 -0
  124. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_40_0.png +0 -0
  125. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_5_0.png +0 -0
  126. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_6_0.png +0 -0
  127. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_6_1.png +0 -0
  128. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_7_0.png +0 -0
  129. {plotfig-1.4.0 → plotfig-1.5.0}/docs/usage/single_group_files/single_group_8_0.png +0 -0
  130. {plotfig-1.4.0 → plotfig-1.5.0}/mkdocs.yml +0 -0
  131. {plotfig-1.4.0 → plotfig-1.5.0}/overrides/main.html +0 -0
  132. {plotfig-1.4.0 → plotfig-1.5.0}/release-please-config.json +0 -0
  133. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/__init__.py +0 -0
  134. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/brain_surface_deprecated.py +0 -0
  135. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/circos.py +0 -0
  136. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/correlation.py +0 -0
  137. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/atlas_tables/chimpanzee_bna.csv +0 -0
  138. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/atlas_tables/human_bna.csv +0 -0
  139. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/atlas_tables/human_glasser.csv +0 -0
  140. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/atlas_tables/macaque_bna.csv +0 -0
  141. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/atlas_tables/macaque_charm5.csv +0 -0
  142. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/atlas_tables/macaque_charm5_add_13_sgms.csv +0 -0
  143. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/atlas_tables/macaque_charm6.csv +0 -0
  144. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/atlas_tables/macaque_d99.csv +0 -0
  145. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/chimpanzee_BNA/ChimpBNA.L.32k_fs_LR.label.gii +0 -0
  146. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/chimpanzee_BNA/ChimpBNA.R.32k_fs_LR.label.gii +0 -0
  147. {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
  148. {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
  149. {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
  150. {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
  151. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/macaque_BNA/MBNA_124_32k_L.label.gii +0 -0
  152. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/macaque_BNA/MBNA_124_32k_R.label.gii +0 -0
  153. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/macaque_CHARM5/L.charm5.label.gii +0 -0
  154. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/macaque_CHARM5/R.charm5.label.gii +0 -0
  155. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/macaque_CHARM6/L.charm6.label.gii +0 -0
  156. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/macaque_CHARM6/R.charm6.label.gii +0 -0
  157. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/macaque_D99/L.d99.label.gii +0 -0
  158. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/atlases/macaque_D99/R.d99.label.gii +0 -0
  159. {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
  160. {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
  161. {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
  162. {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
  163. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/human_fsLR/README.md +0 -0
  164. {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
  165. {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
  166. {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
  167. {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
  168. {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
  169. {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
  170. {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
  171. {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
  172. {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
  173. {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
  174. {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
  175. {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
  176. {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
  177. {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
  178. {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
  179. {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
  180. {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
  181. {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
  182. {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
  183. {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
  184. {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
  185. {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
  186. {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
  187. {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
  188. {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
  189. {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
  190. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/L.gray_surface.inf_300.surf.gii +0 -0
  191. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/L.gray_surface.surf.gii +0 -0
  192. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/L.mid_surface.inf_300.surf.gii +0 -0
  193. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/L.mid_surface.surf.gii +0 -0
  194. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/L.white_surface.inf_300.surf.gii +0 -0
  195. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/L.white_surface.surf.gii +0 -0
  196. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/R.gray_surface.inf_300.surf.gii +0 -0
  197. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/R.gray_surface.surf.gii +0 -0
  198. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/R.mid_surface.inf_300.surf.gii +0 -0
  199. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/R.mid_surface.surf.gii +0 -0
  200. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/R.white_surface.inf_300.surf.gii +0 -0
  201. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/surfaces/macaque_NMT2/R.white_surface.surf.gii +0 -0
  202. {plotfig-1.4.0 → plotfig-1.5.0}/src/plotfig/data/neurodata/volumes/macaque_NMT2/CHARM5_add_13_sgms_asym.nii.gz +0 -0
  203. {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: 'Dependency review'
10
+ name: "Dependency review"
11
11
  on:
12
12
  pull_request:
13
- branches: [ "main", "dev" ]
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: 'Checkout repository'
30
+ - name: "Checkout repository"
31
31
  uses: actions/checkout@v4
32
- - name: 'Dependency Review'
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:
@@ -28,9 +28,6 @@ jobs:
28
28
 
29
29
  - name: Build release distributions
30
30
  run: |
31
- # NOTE: put your own distribution build steps here.
32
- # python -m pip install build
33
- # python -m build
34
31
  pip install uv
35
32
  uv build
36
33
 
@@ -19,4 +19,4 @@ jobs:
19
19
  with:
20
20
  token: ${{ secrets.RELEASE_PLEASE_ACCESS_TOKEN }}
21
21
  config-file: release-please-config.json
22
- manifest-file: .release-please-manifest.json
22
+ manifest-file: .release-please-manifest.json
@@ -1,6 +1,6 @@
1
1
  name: Sync To Gitee
2
2
 
3
- on: [ push, delete, create ]
3
+ on: [push, delete, create]
4
4
 
5
5
  jobs:
6
6
  build:
@@ -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 查看<a href="/plotfig/changelog">更新日志</a>。</strong>\n{%% endblock %%}\n' "$summary" > overrides/main.html
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
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.5.0"
3
+ }
@@ -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.4.0
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.1
87
- - [mne-connectivity](https://mne.tools/mne-connectivity/stable/index.html) ≥ 0.7.0
88
- - [nibabel](https://nipy.org/nibabel/) ≥ 5.3.2
89
- - [numpy](https://numpy.org/) ≥ 2.2.4
90
- - [pandas](https://pandas.pydata.org/) ≥ 2.2.3
91
- - [plotly](https://plotly.com/) ≥ 6.0.1
92
- - [scipy](https://scipy.org/) ≥ 1.15.2
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.1
69
- - [mne-connectivity](https://mne.tools/mne-connectivity/stable/index.html) ≥ 0.7.0
70
- - [nibabel](https://nipy.org/nibabel/) ≥ 5.3.2
71
- - [numpy](https://numpy.org/) ≥ 2.2.4
72
- - [pandas](https://pandas.pydata.org/) ≥ 2.2.3
73
- - [plotly](https://plotly.com/) ≥ 6.0.1
74
- - [scipy](https://scipy.org/) ≥ 1.15.2
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),一起变得更强 🙌!
@@ -20,8 +20,6 @@
20
20
 
21
21
  ## 文档与示例
22
22
 
23
- `plotfig` 提供了网页文档和使用示例。具体参见[使用教程](https://ricardoryn.github.io/plotfig/)。
24
-
25
23
  `plotfig` API 设计简洁,参数灵活,适合科研人员和数据分析师快速集成到自己的数据分析流程中。
26
24
  其模块化架构便于后续功能扩展和自定义开发。
27
25
  结合 `matplotlib` 支持矢量图或高分辨率位图和交互式 HTML 输出,适合论文发表和学术展示。
@@ -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
+ ![png](brain_surface_deprecated_files/brain_surface_deprecated_7_1.png)
75
+
76
+
77
+
68
78
 
69
79
  ```python
70
80
  import matplotlib.pyplot as plt
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "plotfig"
3
- version = "1.4.0"
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 + interval
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
- comparisons = []
187
- idx = 0
188
- if test_method != "ttest_1samp":
189
- for i in range(len(data)):
190
- for j in range(i + 1, len(data)):
191
- if test_method == "external":
192
- p = p_list[idx]
193
- idx += 1
194
- else:
195
- _, p = perform_stat_test(
196
- data1=data[i], data2=data[j], method=test_method
197
- )
198
- if p <= 0.05:
199
- comparisons.append((i, j, p))
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
- for i in range(len(data)):
202
- _, p = perform_stat_test(data1=data[i], popmean=popmean, method=test_method)
203
- if p <= 0.05:
204
- comparisons.append((i, p))
205
- if not comparisons:
206
- return
207
-
208
- y_max = ax.get_ylim()[1]
209
- interval = (y_max - np.max(all_values)) / (len(comparisons) + 1)
210
- annotate_significance(
211
- ax,
212
- comparisons,
213
- np.max(all_values),
214
- interval,
215
- line_color=statistical_line_color,
216
- star_offset=interval / 5,
217
- fontsize=asterisk_fontsize,
218
- color=asterisk_color,
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, means, width=width, color=colors, alpha=color_alpha, edgecolor=edgecolor
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(ax, data, pos, width=width, c1="red", c2="blue", color_alpha=1):
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(ax, d, pos=i, c1=c1, c2=c2, color_alpha=color_alpha)
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 = "#ff0000" if value > 0 else "#0000ff"
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): 脑图集名称,根据物种不同可选不同图集. Defaults to "glasser".
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.