nucleardatapy 0.2.0__py3-none-any.whl → 1.0.0__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 (165) hide show
  1. nucleardatapy/__init__.py +3 -1
  2. nucleardatapy/astro/setup_gw.py +18 -18
  3. nucleardatapy/astro/setup_mr.py +9 -1
  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/crust/setup_crust.py +403 -120
  9. nucleardatapy/data/astro/NICER/J0740+6620.dat +1 -0
  10. nucleardatapy/data/crust/2018-PCPFDDG-BSK22.dat +83 -0
  11. nucleardatapy/data/crust/2018-PCPFDDG-BSK24.dat +74 -0
  12. nucleardatapy/data/crust/2018-PCPFDDG-BSK25.dat +130 -0
  13. nucleardatapy/data/crust/2018-PCPFDDG-BSK26.dat +81 -0
  14. nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-NM.dat → 2006-BHF-Av18-E2A-NM.dat} +8 -8
  15. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-SM.dat +11 -0
  16. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-beta0.2.dat +11 -0
  17. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-beta0.4.dat +11 -0
  18. nucleardatapy/data/matter/nep/NEPESkyrme.dat +2 -3
  19. nucleardatapy/data/matter/nep/NEPGSkyrme.dat +7 -0
  20. nucleardatapy/data/matter/nep/NEPSkyrme.dat +4 -2
  21. nucleardatapy/data/matter/nep/NEPxEFT.dat +8 -0
  22. nucleardatapy/data/matter/nep/best67DDSkyrme.dat +28 -0
  23. nucleardatapy/data/matter/nep/best90DDSkyrme.dat +46 -0
  24. nucleardatapy/data/matter/nep/best95DDSkyrme.dat +54 -0
  25. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-NM.dat +996 -996
  26. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-SM.dat +991 -991
  27. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-NM.dat +1002 -0
  28. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-SM.dat +1002 -0
  29. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-NM.dat +102 -0
  30. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-SM.dat +102 -0
  31. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-NM.dat +102 -0
  32. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-SM.dat +102 -0
  33. nucleardatapy/data/nuclei/masses/Theory/2023-BSkG3.txt +0 -4
  34. nucleardatapy/data/nuclei/masses/Theory/2025-BSkG4.txt +0 -1
  35. nucleardatapy/env.py +1 -1
  36. nucleardatapy/eos/__init__.py +4 -3
  37. nucleardatapy/eos/setupCC.py +429 -0
  38. nucleardatapy/eos/setup_am.py +71 -34
  39. nucleardatapy/eos/setup_am_Beq.py +48 -17
  40. nucleardatapy/eos/setup_am_Leq.py +81 -50
  41. nucleardatapy/fig/__init__.py +29 -7
  42. nucleardatapy/fig/astro_setupGW_fig.py +5 -5
  43. nucleardatapy/fig/astro_setupMR_fig.py +12 -10
  44. nucleardatapy/fig/astro_setupMasses_fig.py +4 -4
  45. nucleardatapy/fig/astro_setupMtov_fig.py +4 -4
  46. nucleardatapy/fig/astro_setupMup_fig.py +5 -5
  47. nucleardatapy/fig/corr_setupEsymDen_fig.py +12 -5
  48. nucleardatapy/fig/corr_setupEsymLsym_fig.py +18 -5
  49. nucleardatapy/fig/corr_setupKsatQsat_fig.py +19 -15
  50. nucleardatapy/fig/crust_setupCrust_fig.py +7 -7
  51. nucleardatapy/fig/eos_setupAMBeq_fig.py +1338 -64
  52. nucleardatapy/fig/eos_setupAMLeq_fig.py +200 -68
  53. nucleardatapy/fig/eos_setupAM_asy_lep_fig.py +364 -0
  54. nucleardatapy/fig/eos_setupAM_asy_nuc_fig.py +337 -0
  55. nucleardatapy/fig/eos_setupAM_asy_tot_fig.py +343 -0
  56. nucleardatapy/fig/eos_setupAM_fig.py +470 -47
  57. nucleardatapy/fig/eos_setupCC_fig.py +240 -0
  58. nucleardatapy/fig/hnuc_setupChart_fig.py +2 -2
  59. nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +4 -4
  60. nucleardatapy/fig/matter_all_fig.py +954 -0
  61. nucleardatapy/fig/matter_setupCheck_fig.py +103 -0
  62. nucleardatapy/fig/matter_setupFFGLep_fig.py +70 -0
  63. nucleardatapy/fig/matter_setupFFGNuc_fig.py +268 -104
  64. nucleardatapy/fig/matter_setupHIC_fig.py +98 -58
  65. nucleardatapy/fig/matter_setupMicroEsym_fig.py +267 -51
  66. nucleardatapy/fig/matter_setupMicro_LP_fig.py +175 -78
  67. nucleardatapy/fig/matter_setupMicro_band_fig.py +116 -47
  68. nucleardatapy/fig/matter_setupMicro_effmass_fig.py +264 -34
  69. nucleardatapy/fig/matter_setupMicro_err_NM_fig.py +41 -18
  70. nucleardatapy/fig/matter_setupMicro_fig.py +332 -98
  71. nucleardatapy/fig/matter_setupMicro_gap_fig.py +219 -92
  72. nucleardatapy/fig/matter_setupNEPStats_fig.py +96 -0
  73. nucleardatapy/fig/matter_setupPhenoEsym_fig.py +201 -61
  74. nucleardatapy/fig/matter_setupPheno_fig.py +392 -85
  75. nucleardatapy/fig/nuc_setupBEExp_chart_fig.py +286 -0
  76. nucleardatapy/fig/nuc_setupBEExp_fig.py +232 -70
  77. nucleardatapy/fig/nuc_setupBETheo_fig.py +344 -0
  78. nucleardatapy/fig/nuc_setupISGMRExp_fig.py +59 -0
  79. nucleardatapy/fig/nuc_setupRchExp_fig.py +139 -0
  80. nucleardatapy/fig/nuc_setupRchTheo_fig.py +143 -0
  81. nucleardatapy/fig/nuc_setupRnpExp_fig.py +88 -0
  82. nucleardatapy/fig/nuc_setupRnpTheo_fig.py +133 -0
  83. nucleardatapy/hello.py +6 -0
  84. nucleardatapy/hnuc/__init__.py +3 -3
  85. nucleardatapy/hnuc/{setup_be1L_exp.py → setup_re1L_exp.py} +6 -6
  86. nucleardatapy/hnuc/{setup_be1Xi_exp.py → setup_re1Xi_exp.py} +5 -5
  87. nucleardatapy/hnuc/{setup_be2L_exp.py → setup_re2L_exp.py} +6 -6
  88. nucleardatapy/matter/__init__.py +14 -13
  89. nucleardatapy/matter/setup_check.py +97 -0
  90. nucleardatapy/matter/setup_ffg.py +72 -38
  91. nucleardatapy/matter/setup_hic.py +91 -74
  92. nucleardatapy/matter/setup_micro.py +1698 -1019
  93. nucleardatapy/matter/setup_micro_band.py +11 -6
  94. nucleardatapy/matter/setup_micro_effmass.py +55 -2
  95. nucleardatapy/matter/setup_micro_esym.py +39 -34
  96. nucleardatapy/matter/setup_micro_gap.py +26 -19
  97. nucleardatapy/matter/setup_micro_lp.py +20 -19
  98. nucleardatapy/matter/setup_nep.py +175 -92
  99. nucleardatapy/matter/{setup_nep_model_dist.py → setup_nep_stat_model.py} +13 -8
  100. nucleardatapy/matter/{setup_nep_dist.py → setup_nep_stat_models.py} +12 -8
  101. nucleardatapy/matter/setup_pheno.py +121 -45
  102. nucleardatapy/matter/setup_pheno_esym.py +14 -19
  103. nucleardatapy/nuc/__init__.py +2 -2
  104. nucleardatapy/nuc/setup_be_exp.py +345 -333
  105. nucleardatapy/nuc/setup_be_theo.py +366 -178
  106. nucleardatapy/nuc/setup_isgmr_exp.py +4 -4
  107. nucleardatapy/nuc/setup_rch_exp.py +49 -6
  108. nucleardatapy/nuc/setup_rch_theo.py +72 -3
  109. nucleardatapy/nuc/{setup_nskin_exp.py → setup_rnp_exp.py} +59 -65
  110. nucleardatapy/nuc/{setup_nskin_theo.py → setup_rnp_theo.py} +35 -39
  111. nucleardatapy-1.0.0.dist-info/METADATA +553 -0
  112. {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info}/RECORD +156 -128
  113. {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info}/WHEEL +1 -1
  114. tests/test_corr_setupKsatQsat.py +3 -1
  115. tests/test_matter_setupMicro.py +37 -10
  116. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-NM.dat +0 -1002
  117. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-SM.dat +0 -1002
  118. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-NM.dat +0 -1002
  119. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-SM.dat +0 -1002
  120. nucleardatapy/fig/matter_ENM_fig.py +0 -119
  121. nucleardatapy/fig/matter_ESM_fig.py +0 -119
  122. nucleardatapy/fig/matter_Esym_fig.py +0 -122
  123. nucleardatapy/fig/matter_setupNEPModelDist_fig.py +0 -68
  124. nucleardatapy-0.2.0.dist-info/METADATA +0 -115
  125. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-NM-AV18.dat → 2006-EBHF-NM-AV18.dat} +0 -0
  126. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-SM-AV18.dat → 2006-EBHF-SM-AV18.dat} +0 -0
  127. /nucleardatapy/data/crust/{2022-crustGMRS-BSK14.dat → 2022-GMRS-BSK14.dat} +0 -0
  128. /nucleardatapy/data/crust/{2022-crustGMRS-BSK16.dat → 2022-GMRS-BSK16.dat} +0 -0
  129. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL59.dat → 2022-GMRS-DHSL59.dat} +0 -0
  130. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL69.dat → 2022-GMRS-DHSL69.dat} +0 -0
  131. /nucleardatapy/data/crust/{2022-crustGMRS-F0.dat → 2022-GMRS-F0.dat} +0 -0
  132. /nucleardatapy/data/crust/{2022-crustGMRS-H1.dat → 2022-GMRS-H1.dat} +0 -0
  133. /nucleardatapy/data/crust/{2022-crustGMRS-H2.dat → 2022-GMRS-H2.dat} +0 -0
  134. /nucleardatapy/data/crust/{2022-crustGMRS-H3.dat → 2022-GMRS-H3.dat} +0 -0
  135. /nucleardatapy/data/crust/{2022-crustGMRS-H4.dat → 2022-GMRS-H4.dat} +0 -0
  136. /nucleardatapy/data/crust/{2022-crustGMRS-H5.dat → 2022-GMRS-H5.dat} +0 -0
  137. /nucleardatapy/data/crust/{2022-crustGMRS-H7.dat → 2022-GMRS-H7.dat} +0 -0
  138. /nucleardatapy/data/crust/{2022-crustGMRS-LNS5.dat → 2022-GMRS-LNS5.dat} +0 -0
  139. /nucleardatapy/data/crust/{2022-crustGMRS-RATP.dat → 2022-GMRS-RATP.dat} +0 -0
  140. /nucleardatapy/data/crust/{2022-crustGMRS-SGII.dat → 2022-GMRS-SGII.dat} +0 -0
  141. /nucleardatapy/data/crust/{2022-crustGMRS-SLY5.dat → 2022-GMRS-SLY5.dat} +0 -0
  142. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-AM.dat → 2006-BHF-Av18-E2A-AM.dat} +0 -0
  143. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-SM.dat → 2006-BHF-Av18-E2A-SM.dat} +0 -0
  144. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-Esym2-SM.dat → 2006-BHF-Av18-Esym2-SM.dat} +0 -0
  145. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-NM-FreeSpectrum.dat → 2006-BHF-Av18-GAP-NM-FreeSpectrum.dat} +0 -0
  146. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-NM-SelfEnergy.dat → 2006-BHF-Av18-GAP-NM-SelfEnergy.dat} +0 -0
  147. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-SM-FreeSpectrum.dat → 2006-BHF-Av18-GAP-SM-FreeSpectrum.dat} +0 -0
  148. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-SM-SelfEnergy.dat → 2006-BHF-Av18-GAP-SM-SelfEnergy.dat} +0 -0
  149. /nucleardatapy/data/matter/micro/{2013-QMC-NM.dat → 2013-MBPT-NM.dat} +0 -0
  150. /nucleardatapy/data/matter/micro/{2020-MBPT-NM-DHSL59.dat → 2019-MBPT-NM-DHSL59.dat} +0 -0
  151. /nucleardatapy/data/matter/micro/{2020-MBPT-NM-DHSL69.dat → 2019-MBPT-NM-DHSL69.dat} +0 -0
  152. /nucleardatapy/data/matter/micro/{2020-MBPT-SM-DHSL59.dat → 2019-MBPT-SM-DHSL59.dat} +0 -0
  153. /nucleardatapy/data/matter/micro/{2020-MBPT-SM-DHSL69.dat → 2019-MBPT-SM-DHSL69.dat} +0 -0
  154. /nucleardatapy/data/matter/micro/{2023-MBPT-NM.csv → 2020-MBPT-NM.csv} +0 -0
  155. /nucleardatapy/data/matter/micro/{2023-MBPT-SM.csv → 2020-MBPT-SM.csv} +0 -0
  156. /nucleardatapy/data/nuclei/{nskin → rnp}/208Pb.dat +0 -0
  157. /nucleardatapy/data/nuclei/{nskin → rnp}/48Ca.dat +0 -0
  158. /nucleardatapy/data/{NeutronSkin/ddrhNskin-208Pb.dat → rnp/ddrhrnp-208Pb.dat} +0 -0
  159. /nucleardatapy/data/{NeutronSkin/ddrhNskin-48Ca.dat → rnp/ddrhrnp-48Ca.dat} +0 -0
  160. /nucleardatapy/data/{NeutronSkin/nlrhNskin-208Pb.dat → rnp/nlrhrnp-208Pb.dat} +0 -0
  161. /nucleardatapy/data/{NeutronSkin/nlrhNskin-48Ca.dat → rnp/nlrhrnp-48Ca.dat} +0 -0
  162. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-208Pb.dat → rnp/skyrmernp-208Pb.dat} +0 -0
  163. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-48Ca.dat → rnp/skyrmernp-48Ca.dat} +0 -0
  164. {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info/licenses}/LICENSE +0 -0
  165. {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info}/top_level.txt +0 -0
@@ -3,11 +3,11 @@ import matplotlib.pyplot as plt
3
3
 
4
4
  import nucleardatapy as nuda
5
5
 
6
- def matter_setupMicro_gap_1s0_fig( pname, models, matter = 'NM' ):
6
+ def matter_setupMicro_gap_1s0_fig(pname, models, matter="NM"):
7
7
  """
8
8
  Plot the correlation between Esym and Lsym.\
9
- The plot is 1x1 with:\
10
- [0]: Esym - Lsym correlation plot
9
+ The plot is 2x2 with:\
10
+ [0,0]: Esym - Lsym correlation plot
11
11
 
12
12
  :param pname: name of the figure (*.png)
13
13
  :type pname: str.
@@ -16,76 +16,93 @@ def matter_setupMicro_gap_1s0_fig( pname, models, matter = 'NM' ):
16
16
 
17
17
  """
18
18
  #
19
- print(f'Plot name: {pname}')
19
+ print(f"Plot name: {pname}")
20
20
  #
21
- print('models:',models)
21
+ print("models:", models)
22
22
  #
23
- fig, axs = plt.subplots(2,2)
24
- fig.tight_layout() # Or equivalently, "plt.tight_layout()"
25
- fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.8, wspace=0.05, hspace=0.05 )
23
+ fig, axs = plt.subplots(2, 2)
24
+ fig.subplots_adjust( left=0.12, bottom=0.12, right=0.95, top=0.85, wspace=0.05, hspace=0.05 )
26
25
  #
27
- axs[0,0].set_ylabel(r'$\Delta_{1S0}$ (MeV)')
28
- axs[0,0].set_xlim([0, 0.048])
26
+ axs[0,0].set_ylabel(r"$\Delta_{1S0}$ (MeV)", fontsize="14")
27
+ axs[0,0].set_xlim([0, 0.09])
29
28
  axs[0,0].set_ylim([0, 3.0])
30
- axs[0,0].tick_params('x', labelbottom=False)
29
+ axs[0,0].tick_params("x", labelbottom=False)
31
30
  #
32
31
  axs[0,1].set_xlim([0, 1.6])
33
32
  axs[0,1].set_ylim([0, 3.0])
34
- axs[0,1].tick_params('x', labelbottom=False)
35
- axs[0,1].tick_params('y', labelleft=False)
33
+ axs[0,1].tick_params("x", labelbottom=False)
34
+ axs[0,1].tick_params("y", labelleft=False)
36
35
  #
37
- axs[1,0].set_ylabel(r'$\Delta_{1S0}/E_F$')
38
- axs[1,0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
39
- axs[1,0].set_xlim([0, 0.048])
40
- axs[1,0].set_ylim([0, 0.78])
36
+ axs[1,0].set_ylabel(r"$\Delta_{1S0}/E_F$", fontsize="14")
37
+ axs[1,0].set_xlabel(r"$n_\text{nuc}$ (fm$^{-3}$)", fontsize="14")
38
+ axs[1,0].set_xlim([0, 0.09])
39
+ axs[1,0].set_ylim([0, 0.65])
41
40
  #
42
- axs[1,1].set_xlabel(r'$k_{F_n}$ (fm$^{-1}$)')
41
+ axs[1,1].set_xlabel(r"$k_{F}$ (fm$^{-1}$)", fontsize="14")
43
42
  axs[1,1].set_xlim([0, 1.6])
44
- axs[1,1].set_ylim([0, 0.78])
45
- axs[1,1].tick_params('y', labelleft=False)
43
+ axs[1,1].set_ylim([0, 0.65])
44
+ axs[1,1].tick_params("y", labelleft=False)
46
45
  #
47
46
  for model in models:
48
47
  #
49
- gap = nuda.matter.setupMicroGap( model = model, matter = matter )
48
+ gap = nuda.matter.setupMicroGap(model=model, matter=matter)
50
49
  #
51
- if matter.lower() == 'nm':
50
+ if matter.lower() == "nm":
52
51
  if gap.nm_gap_1s0 is not None:
53
52
  if gap.nm_gap_1s0_err is not None:
54
- axs[0,0].errorbar( gap.nm_den_1s0, gap.nm_gap_1s0, yerr=gap.nm_gap_1s0_err, marker=gap.marker, markevery=gap.every, linestyle='none', label=gap.label )
55
- axs[0,1].errorbar( gap.nm_kfn_1s0, gap.nm_gap_1s0, yerr=gap.nm_gap_1s0_err, marker=gap.marker, markevery=gap.every, linestyle='none' )
56
- axs[1,0].errorbar( gap.nm_den_1s0, gap.nm_gap_1s0/nuda.eF_n(gap.nm_kfn_1s0), yerr=gap.nm_gap_1s0_err/nuda.eF_n(gap.nm_kfn_1s0), marker=gap.marker, markevery=gap.every, linestyle='none' )
57
- axs[1,1].errorbar( gap.nm_kfn_1s0, gap.nm_gap_1s0/nuda.eF_n(gap.nm_kfn_1s0), yerr=gap.nm_gap_1s0_err/nuda.eF_n(gap.nm_kfn_1s0), marker=gap.marker, markevery=gap.every, linestyle='none' )
53
+ axs[0, 0].errorbar(gap.nm_den_1s0, gap.nm_gap_1s0, yerr=gap.nm_gap_1s0_err,
54
+ marker=gap.marker, markevery=gap.every, linestyle=gap.lstyle, label=gap.label )
55
+ axs[0, 1].errorbar(gap.nm_kfn_1s0, gap.nm_gap_1s0, yerr=gap.nm_gap_1s0_err,
56
+ marker=gap.marker, markevery=gap.every, linestyle=gap.lstyle )
57
+ axs[1, 0].errorbar(gap.nm_den_1s0, gap.nm_gap_1s0 / nuda.eF_n(gap.nm_kfn_1s0), yerr=gap.nm_gap_1s0_err / nuda.eF_n(gap.nm_kfn_1s0),
58
+ marker=gap.marker, markevery=gap.every, linestyle=gap.lstyle )
59
+ axs[1, 1].errorbar(gap.nm_kfn_1s0, gap.nm_gap_1s0 / nuda.eF_n(gap.nm_kfn_1s0), yerr=gap.nm_gap_1s0_err / nuda.eF_n(gap.nm_kfn_1s0),
60
+ marker=gap.marker, markevery=gap.every, linestyle=gap.lstyle )
58
61
  else:
59
- axs[0,0].plot( gap.nm_den_1s0, gap.nm_gap_1s0, marker=gap.marker, markevery=gap.every, linestyle='none', label=gap.label )
60
- axs[0,1].plot( gap.nm_kfn_1s0, gap.nm_gap_1s0, marker=gap.marker, markevery=gap.every, linestyle='none' )
61
- axs[1,0].plot( gap.nm_den_1s0, gap.nm_gap_1s0/nuda.eF_n(gap.nm_kfn_1s0), marker=gap.marker, markevery=gap.every, linestyle='none' )
62
- axs[1,1].plot( gap.nm_kfn_1s0, gap.nm_gap_1s0/nuda.eF_n(gap.nm_kfn_1s0), marker=gap.marker, markevery=gap.every, linestyle='none' )
63
- elif matter.lower() == 'sm':
62
+ axs[0, 0].plot(gap.nm_den_1s0, gap.nm_gap_1s0,
63
+ marker=gap.marker, markevery=gap.every, linestyle=gap.lstyle, label=gap.label)
64
+ axs[0, 1].plot(gap.nm_kfn_1s0, gap.nm_gap_1s0,
65
+ marker=gap.marker, markevery=gap.every, linestyle=gap.lstyle )
66
+ axs[1, 0].plot(gap.nm_den_1s0, gap.nm_gap_1s0 / nuda.eF_n(gap.nm_kfn_1s0),
67
+ marker=gap.marker, markevery=gap.every, linestyle=gap.lstyle )
68
+ axs[1, 1].plot(gap.nm_kfn_1s0, gap.nm_gap_1s0 / nuda.eF_n(gap.nm_kfn_1s0),
69
+ marker=gap.marker, markevery=gap.every, linestyle=gap.lstyle )
70
+ elif matter.lower() == "sm":
64
71
  if gap.sm_gap_1s0 is not None:
65
72
  if gap.sm_gap_1s0_err is not None:
66
- axs[0,0].errorbar( gap.sm_den_1s0, gap.sm_gap_1s0, yerr=gap.sm_gap_1s0_err, marker=gap.marker, markevery=gap.every, linestyle='none', label=gap.label )
67
- axs[0,1].errorbar( gap.sm_kfn_1s0, gap.sm_gap_1s0, yerr=gap.sm_gap_1s0_err, marker=gap.marker, markevery=gap.every, linestyle='none' )
68
- axs[1,0].errorbar( gap.sm_den_1s0, gap.sm_gap_1s0/nuda.eF_n(gap.sm_kfn_1s0), yerr=gap.sm_gap_1s0_err/nuda.eF_n(gap.sm_kfn_1s0), marker=gap.marker, markevery=gap.every, linestyle='none' )
69
- axs[1,1].errorbar( gap.sm_kfn_1s0, gap.sm_gap_1s0/nuda.eF_n(gap.sm_kfn_1s0), yerr=gap.sm_gap_1s0_err/nuda.eF_n(gap.sm_kfn_1s0), marker=gap.marker, markevery=gap.every, linestyle='none' )
73
+ axs[0, 0].errorbar(gap.sm_den_1s0, gap.sm_gap_1s0, yerr=gap.sm_gap_1s0_err,
74
+ marker=gap.marker, markevery=gap.every, linestyle=gap.lstyle, label=gap.label )
75
+ axs[0, 1].errorbar(gap.sm_kfn_1s0, gap.sm_gap_1s0, yerr=gap.sm_gap_1s0_err,
76
+ marker=gap.marker, markevery=gap.every, linestyle=gap.lstyle )
77
+ axs[1, 0].errorbar(gap.sm_den_1s0, gap.sm_gap_1s0 / (2*nuda.eF_n(gap.sm_kfn_1s0)), yerr=gap.sm_gap_1s0_err / nuda.eF_n(gap.sm_kfn_1s0),
78
+ marker=gap.marker, markevery=gap.every, linestyle=gap.lstyle )
79
+ axs[1, 1].errorbar(gap.sm_kfn_1s0, gap.sm_gap_1s0 / (2*nuda.eF_n(gap.sm_kfn_1s0)), yerr=gap.sm_gap_1s0_err / nuda.eF_n(gap.sm_kfn_1s0),
80
+ marker=gap.marker, markevery=gap.every, linestyle=gap.lstyle )
70
81
  else:
71
- axs[0,0].plot( gap.sm_den_1s0, gap.sm_gap_1s0, marker=gap.marker, markevery=gap.every, linestyle='none', label=gap.label )
72
- axs[0,1].plot( gap.sm_kfn_1s0, gap.sm_gap_1s0, marker=gap.marker, markevery=gap.every, linestyle='none' )
73
- axs[1,0].plot( gap.sm_den_1s0, gap.sm_gap_1s0/nuda.eF_n(gap.sm_kfn_1s0), marker=gap.marker, markevery=gap.every, linestyle='none' )
74
- axs[1,1].plot( gap.sm_kfn_1s0, gap.sm_gap_1s0/nuda.eF_n(gap.sm_kfn_1s0), marker=gap.marker, markevery=gap.every, linestyle='none' )
75
- if nuda.env.verb_output: gap.print_outputs( )
82
+ axs[0, 0].plot(gap.sm_den_1s0, gap.sm_gap_1s0,
83
+ marker=gap.marker, markevery=gap.every, linestyle=gap.lstyle, label=gap.label )
84
+ axs[0, 1].plot(gap.sm_kfn_1s0, gap.sm_gap_1s0,
85
+ marker=gap.marker, markevery=gap.every, linestyle=gap.lstyle )
86
+ axs[1, 0].plot(gap.sm_den_1s0, gap.sm_gap_1s0 / (2*nuda.eF_n(gap.sm_kfn_1s0)),
87
+ marker=gap.marker, markevery=gap.every, linestyle=gap.lstyle )
88
+ axs[1, 1].plot(gap.sm_kfn_1s0, gap.sm_gap_1s0 / (2*nuda.eF_n(gap.sm_kfn_1s0)),
89
+ marker=gap.marker, markevery=gap.every, linestyle=gap.lstyle )
90
+ if nuda.env.verb_output:
91
+ gap.print_outputs()
76
92
  #
77
- #axs[1,0].legend(loc='upper right',fontsize='8')
78
- fig.legend(loc='upper left',bbox_to_anchor=(0.08,1.0),columnspacing=2,fontsize='8',ncol=3,frameon=False)
93
+ # axs[1,0].legend(loc='upper right',fontsize='8')
94
+ fig.legend(loc="upper left", bbox_to_anchor=(0.1, 1.0), columnspacing=2, fontsize="8", ncol=3, frameon=False )
79
95
  #
80
96
  if pname is not None:
81
- plt.savefig(pname, dpi=300)
82
- plt.close()
97
+ plt.savefig(pname, dpi=300)
98
+ plt.close()
83
99
 
84
- def matter_setupMicro_gap_3pf2_fig( pname, models, matter = 'NM' ):
100
+
101
+ def matter_setupMicro_gap_3pf2_fig(pname, models, matter="NM"):
85
102
  """
86
103
  Plot the correlation between Esym and Lsym.\
87
- The plot is 1x1 with:\
88
- [0]: Esym - Lsym correlation plot
104
+ The plot is 2x2 with:\
105
+ [0,0]: Esym - Lsym correlation plot
89
106
 
90
107
  :param pname: name of the figure (*.png)
91
108
  :type pname: str.
@@ -94,68 +111,178 @@ def matter_setupMicro_gap_3pf2_fig( pname, models, matter = 'NM' ):
94
111
 
95
112
  """
96
113
  #
97
- print(f'Plot name: {pname}')
114
+ print(f"Plot name: {pname}")
98
115
  #
99
116
  # plot 3PF2 pairing gap in NM
100
- print('models:',models)
117
+ print("models:", models)
101
118
  #
102
- fig, axs = plt.subplots(2,2)
103
- fig.tight_layout() # Or equivalently, "plt.tight_layout()"
104
- fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.8, wspace=0.05, hspace=0.05 )
119
+ fig, axs = plt.subplots(2, 2)
120
+ fig.tight_layout() # Or equivalently, "plt.tight_layout()"
121
+ fig.subplots_adjust(left=0.12, bottom=0.12, right=0.95, top=0.85, wspace=0.05, hspace=0.05 )
105
122
  #
106
- axs[0,0].set_ylabel(r'$\Delta_{3PF2}$ (MeV)')
107
- axs[0,0].set_xlim([0, 0.38])
108
- axs[0,0].set_ylim([0, 0.6])
109
- axs[0,0].tick_params('x', labelbottom=False)
123
+ axs[0, 0].set_ylabel(r"$\Delta_{3PF2}$ (MeV)", fontsize="14")
124
+ axs[0, 0].set_xlim([0, 0.38])
125
+ axs[0, 0].set_ylim([0, 0.6])
126
+ axs[0, 0].tick_params("x", labelbottom=False)
110
127
  #
111
- axs[0,1].set_xlim([0.6, 2.3])
112
- axs[0,1].set_ylim([0, 0.6])
113
- axs[0,1].tick_params('x', labelbottom=False)
114
- axs[0,1].tick_params('y', labelleft=False)
128
+ axs[0, 1].set_xlim([0.6, 2.3])
129
+ axs[0, 1].set_ylim([0, 0.6])
130
+ axs[0, 1].tick_params("x", labelbottom=False)
131
+ axs[0, 1].tick_params("y", labelleft=False)
115
132
  #
116
- axs[1,0].set_ylabel(r'$100\times \Delta_{3PF2}/E_F$')
117
- axs[1,0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
118
- axs[1,0].set_xlim([0, 0.38])
119
- axs[1,0].set_ylim([0, 0.78])
133
+ axs[1, 0].set_ylabel(r"$100\times \Delta_{3PF2}/E_F$", fontsize="14")
134
+ axs[1, 0].set_xlabel(r"$n_\text{nuc}$ (fm$^{-3}$)", fontsize="14")
135
+ axs[1, 0].set_xlim([0, 0.38])
136
+ axs[1, 0].set_ylim([0, 0.78])
120
137
  #
121
- axs[1,1].set_xlabel(r'$k_{F_n}$ (fm$^{-1}$)')
122
- axs[1,1].set_xlim([0.6, 2.3])
123
- axs[1,1].set_ylim([0, 0.78])
124
- axs[1,1].tick_params('y', labelleft=False)
138
+ axs[1, 1].set_xlabel(r"$k_{F}$ (fm$^{-1}$)", fontsize="14")
139
+ axs[1, 1].set_xlim([0.6, 2.3])
140
+ axs[1, 1].set_ylim([0, 0.78])
141
+ axs[1, 1].tick_params("y", labelleft=False)
125
142
  #
126
143
  for model in models:
127
144
  #
128
- gap = nuda.matter.setupMicroGap( model = model, matter = matter )
145
+ gap = nuda.matter.setupMicroGap(model=model, matter=matter)
129
146
  #
130
- if matter.lower() == 'nm':
147
+ if matter.lower() == "nm":
131
148
  if gap.nm_gap_3pf2 is not None:
132
149
  if gap.nm_gap_3pf2_err is not None:
133
- axs[0,0].errorbar( gap.nm_den_3pf2, gap.nm_gap_3pf2, yerr=gap.nm_gap_3pf2_err, marker=gap.marker, markevery=gap.every, linestyle='none', label=gap.label )
134
- axs[0,1].errorbar( gap.nm_kfn_3pf2, gap.nm_gap_3pf2, yerr=gap.nm_gap_3pf2_err, marker=gap.marker, markevery=gap.every, linestyle='none' )
135
- axs[1,0].errorbar( gap.nm_den_3pf2, 100*gap.nm_gap_3pf2/nuda.eF_n(gap.nm_kfn_3pf2), yerr=gap.nm_gap_3pf2_err/nuda.eF_n(gap.nm_kfn_3pf2), marker=gap.marker, markevery=gap.every, linestyle='none' )
136
- axs[1,1].errorbar( gap.nm_kfn_3pf2, 100*gap.nm_gap_3pf2/nuda.eF_n(gap.nm_kfn_3pf2), yerr=gap.nm_gap_3pf2_err/nuda.eF_n(gap.nm_kfn_3pf2), marker=gap.marker, markevery=gap.every, linestyle='none' )
150
+ axs[0, 0].errorbar(
151
+ gap.nm_den_3pf2,
152
+ gap.nm_gap_3pf2,
153
+ yerr=gap.nm_gap_3pf2_err,
154
+ marker=gap.marker,
155
+ markevery=gap.every,
156
+ linestyle=gap.lstyle,
157
+ label=gap.label,
158
+ )
159
+ axs[0, 1].errorbar(
160
+ gap.nm_kfn_3pf2,
161
+ gap.nm_gap_3pf2,
162
+ yerr=gap.nm_gap_3pf2_err,
163
+ marker=gap.marker,
164
+ markevery=gap.every,
165
+ linestyle=gap.lstyle,
166
+ )
167
+ axs[1, 0].errorbar(
168
+ gap.nm_den_3pf2,
169
+ 100 * gap.nm_gap_3pf2 / nuda.eF_n(gap.nm_kfn_3pf2),
170
+ yerr=gap.nm_gap_3pf2_err / nuda.eF_n(gap.nm_kfn_3pf2),
171
+ marker=gap.marker,
172
+ markevery=gap.every,
173
+ linestyle=gap.lstyle,
174
+ )
175
+ axs[1, 1].errorbar(
176
+ gap.nm_kfn_3pf2,
177
+ 100 * gap.nm_gap_3pf2 / nuda.eF_n(gap.nm_kfn_3pf2),
178
+ yerr=gap.nm_gap_3pf2_err / nuda.eF_n(gap.nm_kfn_3pf2),
179
+ marker=gap.marker,
180
+ markevery=gap.every,
181
+ linestyle=gap.lstyle,
182
+ )
137
183
  else:
138
- axs[0,0].plot( gap.nm_den_3pf2, gap.nm_gap_3pf2, marker=gap.marker, markevery=gap.every, linestyle='none', label=gap.label )
139
- axs[0,1].plot( gap.nm_kfn_3pf2, gap.nm_gap_3pf2, marker=gap.marker, markevery=gap.every, linestyle='none' )
140
- axs[1,0].plot( gap.nm_den_3pf2, 100*gap.nm_gap_3pf2/nuda.eF_n(gap.nm_kfn_3pf2), marker=gap.marker, markevery=gap.every, linestyle='none' )
141
- axs[1,1].plot( gap.nm_kfn_3pf2, 100*gap.nm_gap_3pf2/nuda.eF_n(gap.nm_kfn_3pf2), marker=gap.marker, markevery=gap.every, linestyle='none' )
142
- elif matter.lower() == 'sm':
184
+ axs[0, 0].plot(
185
+ gap.nm_den_3pf2,
186
+ gap.nm_gap_3pf2,
187
+ marker=gap.marker,
188
+ markevery=gap.every,
189
+ linestyle=gap.lstyle,
190
+ label=gap.label,
191
+ )
192
+ axs[0, 1].plot(
193
+ gap.nm_kfn_3pf2,
194
+ gap.nm_gap_3pf2,
195
+ marker=gap.marker,
196
+ markevery=gap.every,
197
+ linestyle=gap.lstyle,
198
+ )
199
+ axs[1, 0].plot(
200
+ gap.nm_den_3pf2,
201
+ 100 * gap.nm_gap_3pf2 / nuda.eF_n(gap.nm_kfn_3pf2),
202
+ marker=gap.marker,
203
+ markevery=gap.every,
204
+ linestyle=gap.lstyle,
205
+ )
206
+ axs[1, 1].plot(
207
+ gap.nm_kfn_3pf2,
208
+ 100 * gap.nm_gap_3pf2 / nuda.eF_n(gap.nm_kfn_3pf2),
209
+ marker=gap.marker,
210
+ markevery=gap.every,
211
+ linestyle=gap.lstyle,
212
+ )
213
+ elif matter.lower() == "sm":
143
214
  if gap.sm_gap_3pf2 is not None:
144
215
  if gap.sm_gap_3pf2_err is not None:
145
- axs[0,0].errorbar( gap.sm_den_3pf2, gap.sm_gap_3pf2, yerr=gap.sm_gap_3pf2_err, marker=gap.marker, markevery=gap.every, linestyle='none', label=gap.label )
146
- axs[0,1].errorbar( gap.sm_kfn_3pf2, gap.sm_gap_3pf2, yerr=gap.sm_gap_3pf2_err, marker=gap.marker, markevery=gap.every, linestyle='none' )
147
- axs[1,0].errorbar( gap.sm_den_3pf2, 100*gap.sm_gap_3pf2/nuda.eF_n(gap.sm_kfn_3pf2), yerr=gap.sm_gap_3pf2_err/nuda.eF_n(gap.sm_kfn_3pf2), marker=gap.marker, markevery=gap.every, linestyle='none' )
148
- axs[1,1].errorbar( gap.sm_kfn_3pf2, 100*gap.sm_gap_3pf2/nuda.eF_n(gap.sm_kfn_3pf2), yerr=gap.sm_gap_3pf2_err/nuda.eF_n(gap.sm_kfn_3pf2), marker=gap.marker, markevery=gap.every, linestyle='none' )
216
+ axs[0, 0].errorbar(
217
+ gap.sm_den_3pf2,
218
+ gap.sm_gap_3pf2,
219
+ yerr=gap.sm_gap_3pf2_err,
220
+ marker=gap.marker,
221
+ markevery=gap.every,
222
+ linestyle=gap.lstyle,
223
+ label=gap.label,
224
+ )
225
+ axs[0, 1].errorbar(
226
+ gap.sm_kfn_3pf2,
227
+ gap.sm_gap_3pf2,
228
+ yerr=gap.sm_gap_3pf2_err,
229
+ marker=gap.marker,
230
+ markevery=gap.every,
231
+ linestyle=gap.lstyle,
232
+ )
233
+ axs[1, 0].errorbar(
234
+ gap.sm_den_3pf2,
235
+ 100 * gap.sm_gap_3pf2 / (2*nuda.eF_n(gap.sm_kfn_3pf2)),
236
+ yerr=gap.sm_gap_3pf2_err / (2*nuda.eF_n(gap.sm_kfn_3pf2)),
237
+ marker=gap.marker,
238
+ markevery=gap.every,
239
+ linestyle=gap.lstyle,
240
+ )
241
+ axs[1, 1].errorbar(
242
+ gap.sm_kfn_3pf2,
243
+ 100 * gap.sm_gap_3pf2 / (2*nuda.eF_n(gap.sm_kfn_3pf2)),
244
+ yerr=gap.sm_gap_3pf2_err / (2*nuda.eF_n(gap.sm_kfn_3pf2)),
245
+ marker=gap.marker,
246
+ markevery=gap.every,
247
+ linestyle=gap.lstyle,
248
+ )
149
249
  else:
150
- axs[0,0].plot( gap.sm_den_3pf2, gap.sm_gap_3pf2, marker=gap.marker, markevery=gap.every, linestyle='none', label=gap.label )
151
- axs[0,1].plot( gap.sm_kfn_3pf2, gap.sm_gap_3pf2, marker=gap.marker, markevery=gap.every, linestyle='none' )
152
- axs[1,0].plot( gap.sm_den_3pf2, 100*gap.sm_gap_3pf2/nuda.eF_n(gap.sm_kfn_3pf2), marker=gap.marker, markevery=gap.every, linestyle='none' )
153
- axs[1,1].plot( gap.sm_kfn_3pf2, 100*gap.sm_gap_3pf2/nuda.eF_n(gap.sm_kfn_3pf2), marker=gap.marker, markevery=gap.every, linestyle='none' )
154
- if nuda.env.verb_output: gap.print_outputs( )
250
+ axs[0, 0].plot(
251
+ gap.sm_den_3pf2,
252
+ gap.sm_gap_3pf2,
253
+ marker=gap.marker,
254
+ markevery=gap.every,
255
+ linestyle=gap.lstyle,
256
+ label=gap.label,
257
+ )
258
+ axs[0, 1].plot(
259
+ gap.sm_kfn_3pf2,
260
+ gap.sm_gap_3pf2,
261
+ marker=gap.marker,
262
+ markevery=gap.every,
263
+ linestyle=gap.lstyle,
264
+ )
265
+ axs[1, 0].plot(
266
+ gap.sm_den_3pf2,
267
+ 100 * gap.sm_gap_3pf2 / (2*nuda.eF_n(gap.sm_kfn_3pf2)),
268
+ marker=gap.marker,
269
+ markevery=gap.every,
270
+ linestyle=gap.lstyle,
271
+ )
272
+ axs[1, 1].plot(
273
+ gap.sm_kfn_3pf2,
274
+ 100 * gap.sm_gap_3pf2 / (2*nuda.eF_n(gap.sm_kfn_3pf2)),
275
+ marker=gap.marker,
276
+ markevery=gap.every,
277
+ linestyle=gap.lstyle,
278
+ )
279
+ if nuda.env.verb_output:
280
+ gap.print_outputs()
155
281
  #
156
- #axs[1,0].legend(loc='upper right',fontsize='8')
157
- fig.legend(loc='upper left',bbox_to_anchor=(0.04,1.0),columnspacing=2,fontsize='8',ncol=3,frameon=False)
282
+ # axs[1,0].legend(loc='upper right',fontsize='8')
283
+ fig.legend(loc="upper left", bbox_to_anchor=(0.1, 0.95), columnspacing=2, fontsize="8", ncol=3, frameon=False )
158
284
  #
159
285
  if pname is not None:
160
- plt.savefig(pname, dpi=300)
161
- plt.close()
286
+ plt.savefig(pname, dpi=300)
287
+ plt.close()
288
+ #
@@ -0,0 +1,96 @@
1
+ import numpy as np
2
+ import matplotlib.pyplot as plt
3
+
4
+ import nucleardatapy as nuda
5
+
6
+
7
+ def matter_setupNEPStats_fig(pname, models):
8
+ """
9
+ Plot nucleonic energy per particle E/A in matter.\
10
+ The plot is 5x2 with:\
11
+ [0,0]: E/A versus den (micro). [0,1]: E/A versus den (pheno).\
12
+
13
+ :param pname: name of the figure (*.png)
14
+ :type pname: str.
15
+ :param models: models to run on.
16
+ :type models: array of str.
17
+
18
+ """
19
+ #
20
+ print(f"Plot name: {pname}")
21
+ #
22
+ fig, axs = plt.subplots(5, 2)
23
+ fig.tight_layout() # Or equivalently, "plt.tight_layout()"
24
+ fig.subplots_adjust( left=0.12, bottom=0.06, right=0.95, top=0.9, wspace=0.3, hspace=0.4 )
25
+ #
26
+ axs[0, 0].set_ylabel(r"$E_\text{sat}$")
27
+ axs[0, 0].set_xlim([-16.5, -15])
28
+ axs[1, 0].set_ylabel(r"$n_\text{sat}$")
29
+ axs[1, 0].set_xlim([0.14, 0.18])
30
+ axs[2, 0].set_ylabel(r"$K_\text{sat}$")
31
+ axs[2, 0].set_xlim([180, 360])
32
+ axs[3, 0].set_ylabel(r"$Q_\text{sat}$")
33
+ axs[3, 0].set_xlim([-1000, 1000])
34
+ axs[4, 0].set_ylabel(r"$m_\text{sat}^{*}/m$")
35
+ axs[4, 0].set_xlim([0.35, 1.2])
36
+ axs[0, 1].set_ylabel(r"$E_\text{sym}$")
37
+ axs[0, 1].set_xlim([26, 40])
38
+ axs[1, 1].set_ylabel(r"$L_\text{sym}$")
39
+ axs[1, 1].set_xlim([0, 120])
40
+ axs[2, 1].set_ylabel(r"$K_\text{sym}$")
41
+ axs[2, 1].set_xlim([-400, 220])
42
+ axs[3, 1].set_ylabel(r"$Q_\text{sym}$")
43
+ axs[3, 1].set_xlim([-50, 900])
44
+ axs[4, 1].set_ylabel(r"$\Delta m_\text{sat}^{*}/m$")
45
+ axs[4, 1].set_xlim([-0.5, 1.1])
46
+ #
47
+ # Built distribution of NEP
48
+ #
49
+ for model in models:
50
+ #
51
+ dist = nuda.matter.setupNEPStat_model(model)
52
+ #
53
+ xbins = np.arange(-16.5, -15.0, 0.15)
54
+ if len(dist.Esat) != 0:
55
+ axs[0, 0].hist(dist.Esat, bins=xbins, alpha=0.5, weights=1/len(dist.Esat) * np.ones(len(dist.Esat)) )
56
+ xbins = np.arange(0.14, 0.18, 0.004)
57
+ if len(dist.nsat) != 0:
58
+ axs[1, 0].hist(dist.nsat, bins=xbins, alpha=0.5, weights=1/len(dist.nsat) * np.ones(len(dist.nsat)) )
59
+ xbins = np.arange(180, 320, 20)
60
+ if len(dist.Ksat) != 0:
61
+ axs[2, 0].hist(dist.Ksat, bins=xbins, alpha=0.5, weights=1/len(dist.Ksat) * np.ones(len(dist.Ksat)), label=model )
62
+ xbins = np.arange(-1000, 1000, 200)
63
+ if len(dist.Qsat) != 0:
64
+ axs[3, 0].hist(dist.Qsat, bins=xbins, alpha=0.5, weights=1/len(dist.Qsat) * np.ones(len(dist.Qsat)) )
65
+ xbins = np.arange(0.5, 1.2, 0.1)
66
+ if len(dist.msat) != 0:
67
+ axs[4, 0].hist(dist.msat, bins=xbins, alpha=0.5, weights=1/len(dist.msat) * np.ones(len(dist.msat)) )
68
+ xbins = np.arange(25, 40, 1.0)
69
+ if len(dist.Esym) != 0:
70
+ axs[0, 1].hist(dist.Esym, bins=xbins, alpha=0.5, weights=1/len(dist.Esym) * np.ones(len(dist.Esym)) )
71
+ xbins = np.arange(0, 120, 10)
72
+ if len(dist.Lsym) != 0:
73
+ axs[1, 1].hist(dist.Lsym, bins=xbins, alpha=0.5, weights=1/len(dist.Lsym) * np.ones(len(dist.Lsym)) )
74
+ xbins = np.arange(-400, 400, 100)
75
+ if len(dist.Ksym) != 0:
76
+ axs[2, 1].hist(dist.Ksym, bins=xbins, alpha=0.5, weights=1/len(dist.Ksym) * np.ones(len(dist.Ksym)) )
77
+ xbins = np.arange(0, 1100, 100)
78
+ if len(dist.Qsym) != 0:
79
+ axs[3, 1].hist(dist.Qsym, bins=xbins, alpha=0.5, weights=1/len(dist.Qsym) * np.ones(len(dist.Qsym)) )
80
+ xbins = np.arange(-0.6, 1.0, 0.1)
81
+ if len(dist.Dmsat) != 0:
82
+ axs[4, 1].hist(dist.Dmsat, bins=xbins, alpha=0.5, weights=1/len(dist.Dmsat) * np.ones(len(dist.Dmsat)) )
83
+ #
84
+ # axs[0,0].legend(loc='lower right',fontsize='10',ncol=2)
85
+ fig.legend(
86
+ loc="upper left",
87
+ bbox_to_anchor=(0.02, 0.99),
88
+ columnspacing=2,
89
+ fontsize="7.5",
90
+ ncol=7,
91
+ frameon=False,
92
+ )
93
+ #
94
+ if pname is not None:
95
+ plt.savefig(pname, dpi=300)
96
+ plt.close()