nucleardatapy 0.2.1__py3-none-any.whl → 1.0.1__py3-none-any.whl

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 (172) hide show
  1. nucleardatapy/__init__.py +3 -1
  2. nucleardatapy/astro/setup_gw.py +18 -18
  3. nucleardatapy/astro/setup_mr.py +123 -33
  4. nucleardatapy/astro/setup_mup.py +10 -10
  5. nucleardatapy/corr/setup_EsymDen.py +0 -5
  6. nucleardatapy/corr/setup_EsymLsym.py +50 -17
  7. nucleardatapy/corr/setup_KsatQsat.py +170 -69
  8. nucleardatapy/create_folder.py +2 -2
  9. nucleardatapy/crust/setup_crust.py +364 -126
  10. nucleardatapy/data/astro/HESS/J1731-347.dat +4 -0
  11. nucleardatapy/data/astro/NICER/J0030+0451.dat +6 -6
  12. nucleardatapy/data/astro/NICER/J0437-4715.dat +4 -3
  13. nucleardatapy/data/astro/NICER/J0614-3329.dat +4 -0
  14. nucleardatapy/data/astro/NICER/J0740+6620.dat +5 -4
  15. nucleardatapy/data/hnuclei/1991-2L-Yamamoto.csv +6 -0
  16. nucleardatapy/data/hnuclei/2013-2L-Ahn.csv +1 -1
  17. nucleardatapy/data/hnuclei/2019-2L-Ekawa.csv +7 -0
  18. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-E2A-NM.dat +8 -8
  19. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-414-E2A.dat +21 -0
  20. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-414-TD.dat +22 -0
  21. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-450-E2A.dat +20 -0
  22. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-450-TD.dat +22 -0
  23. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-500-E2A.dat +23 -0
  24. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-500-TD.dat +22 -0
  25. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-414-E2A.dat +15 -0
  26. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-414-TD.dat +21 -0
  27. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-450-E2A.dat +15 -0
  28. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-450-TD.dat +21 -0
  29. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-500-E2A.dat +20 -0
  30. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-500-TD.dat +20 -0
  31. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLO450.dat +28 -0
  32. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLO500.dat +28 -0
  33. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLOgo394.dat +28 -0
  34. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLOgo450.dat +28 -0
  35. nucleardatapy/data/matter/micro/2024-ABI-NM-NNLOsat.dat +28 -0
  36. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLO450.dat +28 -0
  37. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLO500.dat +28 -0
  38. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLOgo394.dat +28 -0
  39. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLOgo450.dat +28 -0
  40. nucleardatapy/data/matter/micro/2024-ABI-SM-NNLOsat.dat +28 -0
  41. nucleardatapy/data/matter/nep/NEPESkyrme.dat +2 -3
  42. nucleardatapy/data/matter/nep/NEPGSkyrme.dat +7 -0
  43. nucleardatapy/data/matter/nep/NEPSkyrme.dat +4 -2
  44. nucleardatapy/data/matter/nep/NEPxEFT.dat +8 -0
  45. nucleardatapy/data/matter/nep/best67DDSkyrme.dat +28 -0
  46. nucleardatapy/data/matter/nep/best90DDSkyrme.dat +46 -0
  47. nucleardatapy/data/matter/nep/best95DDSkyrme.dat +54 -0
  48. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-NM.dat +996 -996
  49. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-SM.dat +991 -991
  50. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-NM.dat +1002 -0
  51. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-SM.dat +1002 -0
  52. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-NM.dat +102 -0
  53. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-SM.dat +102 -0
  54. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-NM.dat +102 -0
  55. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-SM.dat +102 -0
  56. nucleardatapy/env.py +1 -1
  57. nucleardatapy/eos/__init__.py +4 -3
  58. nucleardatapy/eos/setupCC.py +429 -0
  59. nucleardatapy/eos/setup_am.py +39 -14
  60. nucleardatapy/eos/setup_am_Beq.py +40 -15
  61. nucleardatapy/eos/setup_am_Leq.py +40 -15
  62. nucleardatapy/fig/__init__.py +24 -15
  63. nucleardatapy/fig/astro_setupGW_fig.py +9 -7
  64. nucleardatapy/fig/astro_setupMR_fig.py +26 -18
  65. nucleardatapy/fig/astro_setupMasses_fig.py +8 -6
  66. nucleardatapy/fig/astro_setupMtov_fig.py +10 -6
  67. nucleardatapy/fig/astro_setupMup_fig.py +9 -7
  68. nucleardatapy/fig/corr_setupEsymDen_fig.py +22 -9
  69. nucleardatapy/fig/corr_setupEsymLsym_fig.py +25 -8
  70. nucleardatapy/fig/corr_setupKsatQsat_fig.py +23 -17
  71. nucleardatapy/fig/crust_setupCrust_fig.py +11 -9
  72. nucleardatapy/fig/eos_setupAMBeq_fig.py +641 -156
  73. nucleardatapy/fig/eos_setupAMLeq_fig.py +53 -50
  74. nucleardatapy/fig/eos_setupAM_asy_lep_fig.py +373 -0
  75. nucleardatapy/fig/eos_setupAM_asy_nuc_fig.py +346 -0
  76. nucleardatapy/fig/eos_setupAM_asy_tot_fig.py +352 -0
  77. nucleardatapy/fig/eos_setupAM_fig.py +519 -0
  78. nucleardatapy/fig/eos_setupCC_fig.py +270 -0
  79. nucleardatapy/fig/hnuc_setupChart_fig.py +19 -16
  80. nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +15 -5
  81. nucleardatapy/fig/matter_all_fig.py +971 -0
  82. nucleardatapy/fig/matter_setupCheck_fig.py +106 -0
  83. nucleardatapy/fig/matter_setupFFGLep_fig.py +74 -0
  84. nucleardatapy/fig/matter_setupFFGNuc_fig.py +286 -115
  85. nucleardatapy/fig/matter_setupHIC_fig.py +107 -67
  86. nucleardatapy/fig/matter_setupMicroEsym_fig.py +259 -73
  87. nucleardatapy/fig/matter_setupMicro_LP_fig.py +185 -82
  88. nucleardatapy/fig/matter_setupMicro_band_fig.py +126 -53
  89. nucleardatapy/fig/matter_setupMicro_effmass_fig.py +253 -77
  90. nucleardatapy/fig/matter_setupMicro_err_NM_fig.py +45 -20
  91. nucleardatapy/fig/matter_setupMicro_fig.py +317 -77
  92. nucleardatapy/fig/matter_setupMicro_gap_fig.py +237 -100
  93. nucleardatapy/fig/matter_setupNEPStats_fig.py +106 -0
  94. nucleardatapy/fig/matter_setupPhenoEsym_fig.py +204 -65
  95. nucleardatapy/fig/matter_setupPheno_fig.py +395 -93
  96. nucleardatapy/fig/nuc_setupBEExp_chart_fig.py +93 -73
  97. nucleardatapy/fig/nuc_setupBEExp_fig.py +97 -87
  98. nucleardatapy/fig/nuc_setupBETheo_fig.py +114 -81
  99. nucleardatapy/fig/nuc_setupISGMRExp_fig.py +12 -15
  100. nucleardatapy/fig/nuc_setupRchExp_fig.py +14 -22
  101. nucleardatapy/fig/nuc_setupRchTheo_fig.py +37 -40
  102. nucleardatapy/fig/nuc_setupRnpExp_fig.py +86 -106
  103. nucleardatapy/fig/nuc_setupRnpTheo_fig.py +105 -94
  104. nucleardatapy/hello.py +6 -0
  105. nucleardatapy/hnuc/setup_re1L_exp.py +6 -6
  106. nucleardatapy/hnuc/setup_re1Xi_exp.py +5 -5
  107. nucleardatapy/hnuc/setup_re2L_exp.py +36 -13
  108. nucleardatapy/matter/__init__.py +14 -14
  109. nucleardatapy/matter/setup_check.py +6 -6
  110. nucleardatapy/matter/setup_ffg.py +66 -39
  111. nucleardatapy/matter/setup_hic.py +91 -74
  112. nucleardatapy/matter/setup_micro.py +2033 -1007
  113. nucleardatapy/matter/setup_micro_band.py +6 -6
  114. nucleardatapy/matter/setup_micro_esym.py +56 -54
  115. nucleardatapy/matter/setup_micro_gap.py +24 -17
  116. nucleardatapy/matter/setup_micro_lp.py +2 -2
  117. nucleardatapy/matter/setup_nep.py +175 -92
  118. nucleardatapy/matter/{setup_nep_model_dist.py → setup_nep_stat_model.py} +13 -8
  119. nucleardatapy/matter/{setup_nep_dist.py → setup_nep_stat_models.py} +12 -8
  120. nucleardatapy/matter/setup_pheno.py +129 -49
  121. nucleardatapy/matter/setup_pheno_esym.py +22 -19
  122. nucleardatapy/nuc/setup_be_exp.py +306 -292
  123. nucleardatapy/nuc/setup_be_theo.py +288 -105
  124. nucleardatapy/nuc/setup_isgmr_exp.py +4 -4
  125. nucleardatapy/nuc/setup_rnp_exp.py +1 -0
  126. nucleardatapy/nuc/setup_rnp_theo.py +2 -1
  127. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.1.dist-info}/METADATA +48 -16
  128. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.1.dist-info}/RECORD +157 -124
  129. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.1.dist-info}/WHEEL +1 -1
  130. tests/test_corr_setupKsatQsat.py +3 -1
  131. tests/test_matter_setupMicro.py +37 -10
  132. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-NM.dat +0 -1002
  133. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-SM.dat +0 -1002
  134. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-NM.dat +0 -1002
  135. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-SM.dat +0 -1002
  136. nucleardatapy/fig/eos_setupAM_e_asy_lep_fig.py +0 -125
  137. nucleardatapy/fig/eos_setupAM_e_asy_nuc_fig.py +0 -115
  138. nucleardatapy/fig/eos_setupAM_e_asy_tot_fig.py +0 -117
  139. nucleardatapy/fig/eos_setupAM_e_fig.py +0 -173
  140. nucleardatapy/fig/matter_ENM_fig.py +0 -128
  141. nucleardatapy/fig/matter_ESM_fig.py +0 -140
  142. nucleardatapy/fig/matter_Esym_fig.py +0 -134
  143. nucleardatapy/fig/matter_cs2_fig.py +0 -83
  144. nucleardatapy/fig/matter_preNM_fig.py +0 -146
  145. nucleardatapy/fig/matter_preSM_fig.py +0 -144
  146. nucleardatapy/fig/matter_setupNEPModelDist_fig.py +0 -68
  147. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-NM-AV18.dat → 2006-EBHF-NM-AV18.dat} +0 -0
  148. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-SM-AV18.dat → 2006-EBHF-SM-AV18.dat} +0 -0
  149. /nucleardatapy/data/crust/{2022-crustGMRS-BSK14.dat → 2022-GMRS-BSK14.dat} +0 -0
  150. /nucleardatapy/data/crust/{2022-crustGMRS-BSK16.dat → 2022-GMRS-BSK16.dat} +0 -0
  151. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL59.dat → 2022-GMRS-DHSL59.dat} +0 -0
  152. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL69.dat → 2022-GMRS-DHSL69.dat} +0 -0
  153. /nucleardatapy/data/crust/{2022-crustGMRS-F0.dat → 2022-GMRS-F0.dat} +0 -0
  154. /nucleardatapy/data/crust/{2022-crustGMRS-H1.dat → 2022-GMRS-H1.dat} +0 -0
  155. /nucleardatapy/data/crust/{2022-crustGMRS-H2.dat → 2022-GMRS-H2.dat} +0 -0
  156. /nucleardatapy/data/crust/{2022-crustGMRS-H3.dat → 2022-GMRS-H3.dat} +0 -0
  157. /nucleardatapy/data/crust/{2022-crustGMRS-H4.dat → 2022-GMRS-H4.dat} +0 -0
  158. /nucleardatapy/data/crust/{2022-crustGMRS-H5.dat → 2022-GMRS-H5.dat} +0 -0
  159. /nucleardatapy/data/crust/{2022-crustGMRS-H7.dat → 2022-GMRS-H7.dat} +0 -0
  160. /nucleardatapy/data/crust/{2022-crustGMRS-LNS5.dat → 2022-GMRS-LNS5.dat} +0 -0
  161. /nucleardatapy/data/crust/{2022-crustGMRS-RATP.dat → 2022-GMRS-RATP.dat} +0 -0
  162. /nucleardatapy/data/crust/{2022-crustGMRS-SGII.dat → 2022-GMRS-SGII.dat} +0 -0
  163. /nucleardatapy/data/crust/{2022-crustGMRS-SLY5.dat → 2022-GMRS-SLY5.dat} +0 -0
  164. /nucleardatapy/data/matter/micro/{2013-QMC-NM.dat → 2013-MBPT-NM.dat} +0 -0
  165. /nucleardatapy/data/{NeutronSkin/ddrhNskin-208Pb.dat → rnp/ddrhrnp-208Pb.dat} +0 -0
  166. /nucleardatapy/data/{NeutronSkin/ddrhNskin-48Ca.dat → rnp/ddrhrnp-48Ca.dat} +0 -0
  167. /nucleardatapy/data/{NeutronSkin/nlrhNskin-208Pb.dat → rnp/nlrhrnp-208Pb.dat} +0 -0
  168. /nucleardatapy/data/{NeutronSkin/nlrhNskin-48Ca.dat → rnp/nlrhrnp-48Ca.dat} +0 -0
  169. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-208Pb.dat → rnp/skyrmernp-208Pb.dat} +0 -0
  170. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-48Ca.dat → rnp/skyrmernp-48Ca.dat} +0 -0
  171. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.1.dist-info}/licenses/LICENSE +0 -0
  172. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.1.dist-info}/top_level.txt +0 -0
@@ -1,101 +1,141 @@
1
1
  import numpy as np
2
2
  import matplotlib.pyplot as plt
3
- #plt.rcParams.update({'font.size': 16})
3
+
4
+ # plt.rcParams.update({'font.size': 16})
4
5
  # Set clean font settings
5
6
  # Set 'DejaVu Sans' as the font
6
7
  plt.rcParams["font.family"] = "Times New Roman"
7
- plt.rcParams['font.family'] = 'serif'
8
- plt.rcParams['mathtext.fontset'] = 'stixsans'
9
- plt.rcParams['font.serif'] = ['Times New Roman'] + plt.rcParams['font.serif']
8
+ plt.rcParams["font.family"] = "serif"
9
+ plt.rcParams["mathtext.fontset"] = "stixsans"
10
+ plt.rcParams["font.serif"] = ["Times New Roman"] + plt.rcParams["font.serif"]
10
11
 
11
12
  import nucleardatapy as nuda
12
13
 
13
- def matter_setupHIC_fig( pname, constraints ):
14
+
15
+ def matter_setupHIC_fig(pname, inferences):
14
16
  """
15
- Plot nuclear chart (N versus Z).\
16
- The plot is 1x2 with:\
17
- [0]: nuclear chart.
17
+ Plot the inferences from HIC.
18
+
19
+ The plot is 2x2 with:
20
+
21
+ [0,0]: pressure in SM versus den. [0,1]: E/A in SM versus den.
22
+
23
+ [1,0]: pressure in NM versus den. [1,1]: Esym versus den.
18
24
 
19
25
  :param pname: name of the figure (*.png)
20
26
  :type pname: str.
21
- :param table: table.
22
- :type table: str.
23
- :param version: version of table to run on.
24
- :type version: str.
25
- :param theo_tables: object instantiated on the reference band.
26
- :type theo_tables: object.
27
+ :param inferences: inferences for HIC.
28
+ :type inferences: array of str.
27
29
 
28
30
  """
29
31
  #
30
- print(f'Plot name: {pname}')
32
+ print(f"Plot name: {pname}")
31
33
  #
32
- fig, axs = plt.subplots(2,2)
33
- fig.tight_layout() # Or equivalently, "plt.tight_layout()"
34
- fig.subplots_adjust(left=0.10, bottom=0.12, right=None, top=0.98, wspace=0.25, hspace=0.05)
34
+ fig, axs = plt.subplots(2, 2)
35
+ fig.tight_layout() # Or equivalently, "plt.tight_layout()"
36
+ fig.subplots_adjust( left=0.10, bottom=0.12, right=0.95, top=0.98, wspace=0.25, hspace=0.05 )
35
37
  #
36
- #axs[0,0].set_xlabel(r'$n$ (fm$^{-3}$)',fontsize='12')
37
- #axs[0,1].set_xlabel(r'$n$ (fm$^{-3}$)',fontsize='12')
38
- axs[1,0].set_xlabel(r'$n$ (fm$^{-3}$)',fontsize='12')
39
- axs[1,1].set_xlabel(r'$n$ (fm$^{-3}$)',fontsize='12')
38
+ # axs[0,0].set_xlabel(r'$n$ (fm$^{-3}$)',fontsize='12')
39
+ # axs[0,1].set_xlabel(r'$n$ (fm$^{-3}$)',fontsize='12')
40
+ axs[1, 0].set_xlabel(r"$n_\text{nuc}$ (fm$^{-3}$)", fontsize="12")
41
+ axs[1, 1].set_xlabel(r"$n_\text{nuc}$ (fm$^{-3}$)", fontsize="12")
40
42
  #
41
- axs[0,0].set_ylabel(r'$p_\mathrm{SM}$ (MeV fm$^{-3}$)',fontsize='12')
42
- axs[0,1].set_ylabel(r'$e_\mathrm{SM}$ (MeV)',fontsize='12')
43
- axs[1,0].set_ylabel(r'$p_\mathrm{NM}$ (MeV fm$^{-3}$)',fontsize='12')
44
- axs[1,1].set_ylabel(r'Symmetry energy (MeV)',fontsize='12')
43
+ axs[0, 0].set_ylabel(r"$p_\mathrm{SM}(n_\text{nuc})$ (MeV fm$^{-3}$)", fontsize="12")
44
+ axs[0, 1].set_ylabel(r"$e_\mathrm{SM}(n_\text{nuc})$ (MeV)", fontsize="12")
45
+ axs[1, 0].set_ylabel(r"$p_\mathrm{NM}(n_\text{nuc})$ (MeV fm$^{-3}$)", fontsize="12")
46
+ axs[1, 1].set_ylabel(r"$e_\text{sym}(n_\text{nuc})$ (MeV)", fontsize="12")
45
47
  #
46
- axs[0,0].set_xlim([0.16, 0.8])
47
- axs[0,0].set_ylim([0.5, 400])
48
- axs[0,1].set_xlim([0.0, 0.44])
49
- axs[0,1].set_ylim([-18, 20])
50
- axs[1,0].set_xlim([0.16, 0.8])
51
- axs[1,0].set_ylim([0.5, 400])
52
- axs[1,1].set_xlim([0.0, 0.44])
53
- axs[1,1].set_ylim([0.0, 80])
48
+ axs[0, 0].set_xlim([0.16, 0.8])
49
+ axs[0, 0].set_ylim([0.5, 400])
50
+ axs[0, 1].set_xlim([0.0, 0.44])
51
+ axs[0, 1].set_ylim([-18, 20])
52
+ axs[1, 0].set_xlim([0.16, 0.8])
53
+ axs[1, 0].set_ylim([0.5, 400])
54
+ axs[1, 1].set_xlim([0.0, 0.44])
55
+ axs[1, 1].set_ylim([0.0, 80])
54
56
  #
55
- axs[0,0].set_yscale('log')
56
- axs[1,0].set_yscale('log')
57
+ axs[0, 0].set_yscale("log")
58
+ axs[1, 0].set_yscale("log")
57
59
  #
58
- axs[0,0].tick_params('x', labelbottom=False)
59
- axs[0,1].tick_params('x', labelbottom=False)
60
+ axs[0, 0].tick_params("x", labelbottom=False)
61
+ axs[0, 1].tick_params("x", labelbottom=False)
60
62
  #
61
- for constraint in constraints:
63
+ for inference in inferences:
62
64
  #
63
- print('constraint:',constraint)
64
- hic = nuda.matter.setupHIC( constraint = constraint )
65
+ print("inference:", inference)
66
+ hic = nuda.matter.setupHIC( inference = inference )
65
67
  #
66
68
  if hic.sm_pre is not None:
67
- axs[0,0].fill_between( hic.den, y1=hic.sm_pre_lo, y2=hic.sm_pre_up, label=hic.label, alpha=hic.alpha*0.8, color = hic.color )
69
+ axs[0, 0].fill_between(
70
+ hic.den_pre,
71
+ y1=hic.sm_pre_lo,
72
+ y2=hic.sm_pre_up,
73
+ label=hic.label,
74
+ alpha=hic.alpha * 0.8,
75
+ color=hic.color,
76
+ )
68
77
  #
69
- if hic.sm_e2a is not None:
70
- axs[0,1].fill_between( hic.den_e2a, y1=hic.sm_e2a_lo, y2=hic.sm_e2a_up, label=hic.label, alpha=hic.alpha, color ='magenta' )
78
+ if hic.sm_e2a_int_lo is not None:
79
+ axs[0, 1].fill_between(
80
+ hic.den_e2a,
81
+ y1=hic.sm_e2a_int_lo,
82
+ y2=hic.sm_e2a_int_up,
83
+ label=hic.label,
84
+ alpha=hic.alpha,
85
+ color="magenta",
86
+ )
71
87
  #
72
88
  if hic.nm_pre is not None:
73
- axs[1,0].fill_between( hic.den, y1=hic.nm_pre_lo, y2=hic.nm_pre_up, label=hic.label_so, alpha=0.2, color ='b' )
74
- axs[1,0].fill_between( hic.den, y1=hic.nm_pre_st_lo, y2=hic.nm_pre_st_up, label=hic.label_st, alpha=0.2, color ='g' )
89
+ axs[1, 0].fill_between(
90
+ hic.den_pre,
91
+ y1=hic.nm_pre_lo,
92
+ y2=hic.nm_pre_up,
93
+ label=hic.label_so,
94
+ alpha=0.2,
95
+ color="b",
96
+ )
97
+ axs[1, 0].fill_between(
98
+ hic.den_pre,
99
+ y1=hic.nm_pre_st_lo,
100
+ y2=hic.nm_pre_st_up,
101
+ label=hic.label_st,
102
+ alpha=0.2,
103
+ color="g",
104
+ )
75
105
  #
76
- if hic.sym_enr_isodiff is not None:
77
- axs[1,1].errorbar( hic.den_isodiff, hic.sym_enr_isodiff, xerr = hic.den_isodiff_err, yerr=hic.sym_enr_isodiff_err, fmt='o',
78
- label=hic.label, color = hic.color, capsize=2, capthick=1, elinewidth=1 , markersize =3)
106
+ if hic.esym is not None and hic.den_err:
107
+ axs[1, 1].errorbar(
108
+ hic.den_esym,
109
+ hic.esym,
110
+ xerr=hic.den_esym_err,
111
+ yerr=hic.esym_err,
112
+ fmt="o",
113
+ label=hic.label,
114
+ color=hic.color,
115
+ capsize=2,
116
+ capthick=1,
117
+ elinewidth=1,
118
+ markersize=3,
119
+ )
79
120
  #
80
- if hic.sym_enr is not None:
81
- axs[1,1].fill_between( hic.den, y1=hic.sym_enr_lo, y2=hic.sym_enr_up, label=hic.label, alpha=hic.alpha*0.7, color = hic.color )
82
- #
83
- if hic.sym_enr_np is not None:
84
- axs[1,1].errorbar( hic.den_np, hic.sym_enr_np, xerr = hic.den_np_err, yerr=hic.sym_enr_np_err, fmt='o',
85
- label=hic.label, color = hic.color, capsize=2, capthick=1, elinewidth=1, markersize =3 )
86
- #
87
- if hic.sym_enr_spirit is not None:
88
- axs[1,1].errorbar( hic.den_spirit, hic.sym_enr_spirit, xerr = hic.den_spirit_err, yerr=hic.sym_enr_spirit_err, fmt='o',
89
- label=hic.label, color = hic.color, capsize=2, capthick=1, elinewidth=1 , markersize =3)
121
+ if hic.esym is not None and not hic.den_err:
122
+ axs[1, 1].fill_between(
123
+ hic.den_esym,
124
+ y1=hic.esym_lo,
125
+ y2=hic.esym_up,
126
+ label=hic.label,
127
+ alpha=hic.alpha * 0.7,
128
+ color=hic.color,
129
+ )
90
130
  #
91
131
  #
92
- #axs.text(0.15,12,r'$K_{sym}$='+str(int(Ksym))+' MeV',fontsize='12')
93
- axs[0,0].legend(loc='lower right',fontsize='8')
94
- axs[0,1].legend(loc='upper left',fontsize='8')
95
- axs[1,0].legend(loc='lower right',fontsize='8')
96
- axs[1,1].legend(loc='lower right',fontsize='8')
132
+ # axs.text(0.15,12,r'$K_{sym}$='+str(int(Ksym))+' MeV',fontsize='12')
133
+ axs[0, 0].legend(loc="lower right", fontsize="8")
134
+ axs[0, 1].legend(loc="upper left", fontsize="8")
135
+ axs[1, 0].legend(loc="lower right", fontsize="8")
136
+ axs[1, 1].legend(loc="lower right", fontsize="8")
97
137
  #
98
138
  if pname is not None:
99
- plt.savefig(pname, dpi=300)
100
- plt.close()
101
- #
139
+ plt.savefig(pname, dpi=300)
140
+ plt.close()
141
+ #
@@ -3,114 +3,300 @@ import matplotlib.pyplot as plt
3
3
 
4
4
  import nucleardatapy as nuda
5
5
 
6
- def matter_setupMicroEsym_fig( pname, mbs, band ):
6
+
7
+ def matter_setupMicroEsym_fig(pname, mbs, band):
7
8
  """
8
- Plot nuclear chart (N versus Z).\
9
- The plot is 1x2 with:\
10
- [0]: nuclear chart.
9
+ Plot the symmetry energy esym for microscopic models.
10
+
11
+ The plot is 2x2 with:
12
+
13
+ [0,0]: esym function of the density. [0,1]: esym function of the Fermi momentum.
14
+
15
+ [0,0]: esym/esym,FFG function of the density. [0,1]: esym/esym,FFG function of the Fermi momentum.
11
16
 
12
17
  :param pname: name of the figure (*.png)
13
18
  :type pname: str.
14
- :param table: table.
15
- :type table: str.
16
- :param version: version of table to run on.
17
- :type version: str.
18
- :param theo_tables: object instantiated on the reference band.
19
- :type theo_tables: object.
20
-
19
+ :param mbs: list of many-body approaches.
20
+ :type mbs: array of str.
21
+ :param band: object instantiated on the reference band.
22
+ :type band: object.
21
23
  """
22
24
  #
23
- print(f'Plot name: {pname}')
25
+ print(f"Plot name: {pname}")
24
26
  #
25
- fig, axs = plt.subplots(2,2)
26
- fig.tight_layout() # Or equivalently, "plt.tight_layout()"
27
- fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.8, wspace=0.2, hspace=0.2 )
27
+ fig, axs = plt.subplots(2, 2)
28
+ fig.tight_layout() # Or equivalently, "plt.tight_layout()"
29
+ fig.subplots_adjust( left=0.12, bottom=0.12, right=0.95, top=0.9, wspace=0.05, hspace=0.05 )
28
30
  #
29
- axs[0,0].set_ylabel(r'$E_\mathrm{sym}$ (MeV)')
30
- axs[0,0].set_xlim([0, 0.3])
31
- axs[0,0].set_ylim([0, 50])
31
+ axs[0, 0].set_ylabel(r"$E_\mathrm{sym}$ (MeV)", fontsize="14")
32
+ axs[0, 0].set_xlim([0, 0.33])
33
+ axs[0, 0].set_ylim([0, 50])
34
+ axs[0, 0].tick_params("x", labelbottom=False)
32
35
  #
33
- axs[0,1].set_xlim([0.5, 2.0])
34
- axs[0,1].set_ylim([0, 50])
36
+ axs[0, 1].set_xlim([0.5, 2.0])
37
+ axs[0, 1].set_ylim([0, 50])
38
+ axs[0, 1].tick_params("x", labelbottom=False)
39
+ axs[0, 1].tick_params("y", labelleft=False)
35
40
  #
36
- axs[1,0].set_ylabel(r'$E_\mathrm{sym}/E_\mathrm{sym, FFG, NR}$')
37
- axs[1,0].set_xlabel(r'$n_\mathrm{nuc}$ (fm$^{-3}$)')
38
- axs[1,0].set_xlim([0, 0.3])
39
- axs[1,0].set_ylim([1, 4])
41
+ axs[1, 0].set_ylabel(r"$E_\mathrm{sym}/E_\mathrm{sym, FFG, NR}$", fontsize="14")
42
+ axs[1, 0].set_xlabel(r"$n_\mathrm{nuc}$ (fm$^{-3}$)", fontsize="14")
43
+ axs[1, 0].set_xlim([0, 0.33])
44
+ axs[1, 0].set_ylim([1.8, 2.9])
40
45
  #
41
- axs[1,1].set_xlabel(r'$k_F$ (fm$^{-1}$)')
42
- axs[1,1].set_xlim([0.5, 2.0])
43
- axs[1,1].set_ylim([1, 4])
46
+ axs[1, 1].set_xlabel(r"$k_F$ (fm$^{-1}$)", fontsize="14")
47
+ axs[1, 1].set_xlim([0.5, 2.0])
48
+ axs[1, 1].set_ylim([1.8, 2.9])
49
+ axs[1, 1].tick_params("y", labelleft=False)
44
50
  #
45
51
  mb_check = []
46
52
  #
47
- for kmb,mb in enumerate(mbs):
53
+ for kmb, mb in enumerate(mbs):
48
54
  #
49
- models, models_lower = nuda.matter.micro_models_mb( mb )
55
+ models, models_lower = nuda.matter.micro_esym_models_mb(mb)
50
56
  #
51
57
  for model in models:
52
58
  #
53
- print('in Sample: model',model)
59
+ print("in Sample: model", model)
54
60
  #
55
- micro = nuda.matter.setupMicroEsym( model = model )
56
- if nuda.env.verb: micro.print_outputs( )
61
+ micro = nuda.matter.setupMicroEsym(model=model)
62
+ if nuda.env.verb:
63
+ micro.print_outputs()
57
64
  #
58
- micro = nuda.matter.setupMicroEsym( model = model )
59
- if nuda.env.verb_output: micro.print_outputs( )
65
+ micro = nuda.matter.setupMicroEsym(model=model)
66
+ if nuda.env.verb_output:
67
+ micro.print_outputs()
60
68
  #
61
- check = nuda.matter.setupCheck( eos = micro, band = band )
69
+ check = nuda.matter.setupCheck(eos=micro, band=band)
62
70
  #
63
71
  if check.isInside:
64
- lstyle = 'solid'
72
+ lstyle = "solid"
65
73
  else:
66
- lstyle = 'dashed'
74
+ lstyle = "dashed"
67
75
  #
68
76
  if micro.esym is not None:
69
- #if '2024-BHF' in model and (kmb % 4 != 0.0): continue
77
+ # if '2024-BHF' in model and (kmb % 4 != 0.0): continue
70
78
  if mb in mb_check:
71
79
  if micro.esym_err is None:
72
- axs[0,0].plot( micro.den, micro.esym, marker=micro.marker, markevery=micro.every, linestyle=lstyle, color=nuda.param.col[kmb] )
73
- axs[0,1].plot( micro.kf, micro.esym, marker=micro.marker, markevery=micro.every, linestyle=lstyle, color=nuda.param.col[kmb] )
74
- axs[1,0].plot( micro.den, micro.esym/nuda.esymffg_nr(micro.kf), marker=micro.marker, markevery=micro.every, linestyle=lstyle, color=nuda.param.col[kmb] )
75
- axs[1,1].plot( micro.kf, micro.esym/nuda.esymffg_nr(micro.kf), marker=micro.marker, markevery=micro.every, linestyle=lstyle, color=nuda.param.col[kmb] )
80
+ axs[0, 0].plot(
81
+ micro.den,
82
+ micro.esym,
83
+ marker=micro.marker,
84
+ markevery=micro.every,
85
+ linestyle=lstyle,
86
+ color=nuda.param.col[kmb],
87
+ )
88
+ axs[0, 1].plot(
89
+ micro.kf,
90
+ micro.esym,
91
+ marker=micro.marker,
92
+ markevery=micro.every,
93
+ linestyle=lstyle,
94
+ color=nuda.param.col[kmb],
95
+ )
96
+ axs[1, 0].plot(
97
+ micro.den,
98
+ micro.esym / nuda.esymffg_nr(micro.kf),
99
+ marker=micro.marker,
100
+ markevery=micro.every,
101
+ linestyle=lstyle,
102
+ color=nuda.param.col[kmb],
103
+ )
104
+ axs[1, 1].plot(
105
+ micro.kf,
106
+ micro.esym / nuda.esymffg_nr(micro.kf),
107
+ marker=micro.marker,
108
+ markevery=micro.every,
109
+ linestyle=lstyle,
110
+ color=nuda.param.col[kmb],
111
+ )
76
112
  else:
77
- axs[0,0].errorbar( micro.den, micro.esym, yerr=micro.esym_err, marker=micro.marker, markevery=micro.every, linestyle=lstyle, errorevery=micro.every, color=nuda.param.col[kmb] )
78
- axs[0,1].errorbar( micro.kf, micro.esym, yerr=micro.esym_err, marker=micro.marker, markevery=micro.every, linestyle=lstyle, errorevery=micro.every, color=nuda.param.col[kmb] )
79
- axs[1,0].errorbar( micro.den, micro.esym/nuda.esymffg_nr(micro.kf), yerr=micro.esym_err/nuda.esymffg_nr(micro.kf), marker=micro.marker, markevery=micro.every, linestyle=lstyle, errorevery=micro.every, color=nuda.param.col[kmb] )
80
- axs[1,1].errorbar( micro.kf, micro.esym/nuda.esymffg_nr(micro.kf), yerr=micro.esym_err/nuda.esymffg_nr(micro.kf), marker=micro.marker, markevery=micro.every, linestyle=lstyle, errorevery=micro.every, color=nuda.param.col[kmb] )
113
+ axs[0, 0].errorbar(
114
+ micro.den,
115
+ micro.esym,
116
+ yerr=micro.esym_err,
117
+ marker=micro.marker,
118
+ markevery=micro.every,
119
+ linestyle=lstyle,
120
+ errorevery=micro.every,
121
+ color=nuda.param.col[kmb],
122
+ )
123
+ axs[0, 1].errorbar(
124
+ micro.kf,
125
+ micro.esym,
126
+ yerr=micro.esym_err,
127
+ marker=micro.marker,
128
+ markevery=micro.every,
129
+ linestyle=lstyle,
130
+ errorevery=micro.every,
131
+ color=nuda.param.col[kmb],
132
+ )
133
+ axs[1, 0].errorbar(
134
+ micro.den,
135
+ micro.esym / nuda.esymffg_nr(micro.kf),
136
+ yerr=micro.esym_err / nuda.esymffg_nr(micro.kf),
137
+ marker=micro.marker,
138
+ markevery=micro.every,
139
+ linestyle=lstyle,
140
+ errorevery=micro.every,
141
+ color=nuda.param.col[kmb],
142
+ )
143
+ axs[1, 1].errorbar(
144
+ micro.kf,
145
+ micro.esym / nuda.esymffg_nr(micro.kf),
146
+ yerr=micro.esym_err / nuda.esymffg_nr(micro.kf),
147
+ marker=micro.marker,
148
+ markevery=micro.every,
149
+ linestyle=lstyle,
150
+ errorevery=micro.every,
151
+ color=nuda.param.col[kmb],
152
+ )
81
153
  else:
82
154
  mb_check.append(mb)
83
155
  if micro.esym_err is None:
84
- axs[0,0].plot( micro.den, micro.esym, marker=micro.marker, markevery=micro.every, linestyle=lstyle, color=nuda.param.col[kmb], label=mb )
85
- axs[0,1].plot( micro.kf, micro.esym, marker=micro.marker, markevery=micro.every, linestyle=lstyle, color=nuda.param.col[kmb] )
86
- axs[1,0].plot( micro.den, micro.esym/nuda.esymffg_nr(micro.kf), marker=micro.marker, markevery=micro.every, linestyle=lstyle, color=nuda.param.col[kmb] )
87
- axs[1,1].plot( micro.kf, micro.esym/nuda.esymffg_nr(micro.kf), marker=micro.marker, markevery=micro.every, linestyle=lstyle, color=nuda.param.col[kmb] )
156
+ axs[0, 0].plot(
157
+ micro.den,
158
+ micro.esym,
159
+ marker=micro.marker,
160
+ markevery=micro.every,
161
+ linestyle=lstyle,
162
+ color=nuda.param.col[kmb],
163
+ label=mb,
164
+ )
165
+ axs[0, 1].plot(
166
+ micro.kf,
167
+ micro.esym,
168
+ marker=micro.marker,
169
+ markevery=micro.every,
170
+ linestyle=lstyle,
171
+ color=nuda.param.col[kmb],
172
+ )
173
+ axs[1, 0].plot(
174
+ micro.den,
175
+ micro.esym / nuda.esymffg_nr(micro.kf),
176
+ marker=micro.marker,
177
+ markevery=micro.every,
178
+ linestyle=lstyle,
179
+ color=nuda.param.col[kmb],
180
+ )
181
+ axs[1, 1].plot(
182
+ micro.kf,
183
+ micro.esym / nuda.esymffg_nr(micro.kf),
184
+ marker=micro.marker,
185
+ markevery=micro.every,
186
+ linestyle=lstyle,
187
+ color=nuda.param.col[kmb],
188
+ )
88
189
  else:
89
- axs[0,0].errorbar( micro.den, micro.esym, yerr=micro.esym_err, marker=micro.marker, markevery=micro.every, linestyle=lstyle, errorevery=micro.every, color=nuda.param.col[kmb], label=mb )
90
- axs[0,1].errorbar( micro.kf, micro.esym, yerr=micro.esym_err, marker=micro.marker, markevery=micro.every, linestyle=lstyle, errorevery=micro.every, color=nuda.param.col[kmb] )
91
- axs[1,0].errorbar( micro.den, micro.esym/nuda.esymffg_nr(micro.kf), yerr=micro.esym_err/nuda.esymffg_nr(micro.kf), marker=micro.marker, markevery=micro.every, linestyle=lstyle, errorevery=micro.every, color=nuda.param.col[kmb] )
92
- axs[1,1].errorbar( micro.kf, micro.esym/nuda.esymffg_nr(micro.kf), yerr=micro.esym_err/nuda.esymffg_nr(micro.kf), marker=micro.marker, markevery=micro.every, linestyle=lstyle, errorevery=micro.every, color=nuda.param.col[kmb] )
190
+ axs[0, 0].errorbar(
191
+ micro.den,
192
+ micro.esym,
193
+ yerr=micro.esym_err,
194
+ marker=micro.marker,
195
+ markevery=micro.every,
196
+ linestyle=lstyle,
197
+ errorevery=micro.every,
198
+ color=nuda.param.col[kmb],
199
+ label=mb,
200
+ )
201
+ axs[0, 1].errorbar(
202
+ micro.kf,
203
+ micro.esym,
204
+ yerr=micro.esym_err,
205
+ marker=micro.marker,
206
+ markevery=micro.every,
207
+ linestyle=lstyle,
208
+ errorevery=micro.every,
209
+ color=nuda.param.col[kmb],
210
+ )
211
+ axs[1, 0].errorbar(
212
+ micro.den,
213
+ micro.esym / nuda.esymffg_nr(micro.kf),
214
+ yerr=micro.esym_err / nuda.esymffg_nr(micro.kf),
215
+ marker=micro.marker,
216
+ markevery=micro.every,
217
+ linestyle=lstyle,
218
+ errorevery=micro.every,
219
+ color=nuda.param.col[kmb],
220
+ )
221
+ axs[1, 1].errorbar(
222
+ micro.kf,
223
+ micro.esym / nuda.esymffg_nr(micro.kf),
224
+ yerr=micro.esym_err / nuda.esymffg_nr(micro.kf),
225
+ marker=micro.marker,
226
+ markevery=micro.every,
227
+ linestyle=lstyle,
228
+ errorevery=micro.every,
229
+ color=nuda.param.col[kmb],
230
+ )
93
231
 
94
- #
95
- axs[0,0].plot( micro.den, nuda.esymffg_nr(micro.kf), linestyle='dotted' )
96
- axs[0,1].plot( micro.kf, nuda.esymffg_nr(micro.kf), linestyle='dotted' )
232
+ # FFG symmetry energy
233
+ #axs[0, 0].plot(micro.den, nuda.esymffg_nr(micro.kf), linestyle="dotted")
234
+ #axs[0, 1].plot(micro.kf, nuda.esymffg_nr(micro.kf), linestyle="dotted")
97
235
 
98
- axs[0,0].fill_between( band.den, y1=(band.e2a-band.e2a_std), y2=(band.e2a+band.e2a_std), color=band.color, alpha=band.alpha, visible=True )
99
- axs[0,0].plot( band.den, (band.e2a-band.e2a_std), color='k', linestyle='dashed', visible=True )
100
- axs[0,0].plot( band.den, (band.e2a+band.e2a_std), color='k', linestyle='dashed', visible=True )
101
- axs[0,1].fill_between( band.kfn, y1=(band.e2a-band.e2a_std), y2=(band.e2a+band.e2a_std), color=band.color, alpha=band.alpha, visible=True )
102
- axs[0,1].plot( band.kfn, (band.e2a-band.e2a_std), color='k', linestyle='dashed', visible=True )
103
- axs[0,1].plot( band.kfn, (band.e2a+band.e2a_std), color='k', linestyle='dashed', visible=True )
104
- axs[1,0].fill_between( band.den, y1=(band.e2a-band.e2a_std)/nuda.esymffg_nr(band.kf), y2=(band.e2a+band.e2a_std)/nuda.esymffg_nr(band.kf), color=band.color, alpha=band.alpha, visible=True )
105
- axs[1,0].plot( band.den, (band.e2a-band.e2a_std)/nuda.esymffg_nr(band.kf), color='k', linestyle='dashed', visible=True )
106
- axs[1,0].plot( band.den, (band.e2a+band.e2a_std)/nuda.esymffg_nr(band.kf), color='k', linestyle='dashed', visible=True )
107
- axs[1,1].fill_between( band.kfn, y1=(band.e2a-band.e2a_std)/nuda.esymffg_nr(band.kf), y2=(band.e2a+band.e2a_std)/nuda.esymffg_nr(band.kf), color=band.color, alpha=band.alpha, visible=True )
108
- axs[1,1].plot( band.kfn, (band.e2a-band.e2a_std)/nuda.esymffg_nr(band.kf), color='k', linestyle='dashed', visible=True )
109
- axs[1,1].plot( band.kfn, (band.e2a+band.e2a_std)/nuda.esymffg_nr(band.kf), color='k', linestyle='dashed', visible=True )
236
+ axs[0, 0].fill_between(
237
+ band.den,
238
+ y1=(band.e2a_int - band.e2a_std),
239
+ y2=(band.e2a_int + band.e2a_std),
240
+ color=band.color,
241
+ alpha=band.alpha,
242
+ visible=True,
243
+ )
244
+ axs[0, 0].plot(
245
+ band.den, (band.e2a_int - band.e2a_std), color="k", linestyle="dashed", visible=True, zorder = 100 )
246
+ axs[0, 0].plot(
247
+ band.den, (band.e2a_int + band.e2a_std), color="k", linestyle="dashed", visible=True, zorder = 100 )
248
+ axs[0, 1].fill_between(
249
+ band.kfn,
250
+ y1=(band.e2a_int - band.e2a_std),
251
+ y2=(band.e2a_int + band.e2a_std),
252
+ color=band.color,
253
+ alpha=band.alpha,
254
+ visible=True,
255
+ )
256
+ axs[0, 1].plot(
257
+ band.kfn, (band.e2a_int - band.e2a_std), color="k", linestyle="dashed", visible=True, zorder = 100 )
258
+ axs[0, 1].plot(
259
+ band.kfn, (band.e2a_int + band.e2a_std), color="k", linestyle="dashed", visible=True, zorder = 100 )
260
+ axs[1, 0].fill_between(
261
+ band.den,
262
+ y1=(band.e2a_int - band.e2a_std) / nuda.esymffg_nr(band.kf),
263
+ y2=(band.e2a_int + band.e2a_std) / nuda.esymffg_nr(band.kf),
264
+ color=band.color,
265
+ alpha=band.alpha,
266
+ visible=True,
267
+ )
268
+ axs[1, 0].plot(
269
+ band.den, (band.e2a_int - band.e2a_std) / nuda.esymffg_nr(band.kf),
270
+ color="k", linestyle="dashed", visible=True, zorder = 100 )
271
+ axs[1, 0].plot(
272
+ band.den, (band.e2a_int + band.e2a_std) / nuda.esymffg_nr(band.kf),
273
+ color="k", linestyle="dashed", visible=True, zorder = 100 )
274
+ axs[1, 1].fill_between(
275
+ band.kfn,
276
+ y1=(band.e2a_int - band.e2a_std) / nuda.esymffg_nr(band.kf),
277
+ y2=(band.e2a_int + band.e2a_std) / nuda.esymffg_nr(band.kf),
278
+ color=band.color,
279
+ alpha=band.alpha,
280
+ visible=True,
281
+ )
282
+ axs[1, 1].plot(
283
+ band.kfn, (band.e2a_int - band.e2a_std) / nuda.esymffg_nr(band.kf),
284
+ color="k", linestyle="dashed", visible=True, zorder = 100 )
285
+ axs[1, 1].plot(
286
+ band.kfn, (band.e2a_int + band.e2a_std) / nuda.esymffg_nr(band.kf),
287
+ color="k", linestyle="dashed", visible=True, zorder = 100 )
110
288
 
111
- #axs[1,0].legend(loc='upper right',fontsize='8')
112
- fig.legend(loc='upper left',bbox_to_anchor=(0.1,1.0),columnspacing=2,fontsize='8',ncol=3,frameon=False)
289
+ # axs[1,0].legend(loc='upper right',fontsize='8')
290
+ fig.legend(
291
+ loc="upper left",
292
+ bbox_to_anchor=(0.1, 1.0),
293
+ columnspacing=2,
294
+ fontsize="8",
295
+ ncol=6,
296
+ frameon=False,
297
+ )
113
298
  #
114
299
  if pname is not None:
115
- plt.savefig(pname, dpi=300)
116
- plt.close()
300
+ plt.savefig(pname, dpi=300)
301
+ plt.close()
302
+ #