使用matplotlib绘制单独的直方图

2024-09-27 09:32:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在一个单独的窗口中为每种聚合物长度绘制一个不同的柱状图

这就是我得到的结果-在一个窗口中,3个直方图相互重叠
enter image description here

import matplotlib.pyplot as plt
for polymer_length in polymer_lengths:
with open('radii_{0}d_N{1}_l{2}.txt'.format(int(dim), polymer_length, int(monomer_length))) as radii_file:
    radii_raw = radii_file.readlines()
    nice_radii = []
    for ele in radii_raw[1:]:
        nice_radii.append(float(ele))

plt.style.use('fivethirtyeight')

plt.hist(nice_radii, bins=25, rwidth=0.95)

plt.title('Histogram for Polymer length {} with monomer length {}, in {}D'.format(polymer_length, int(monomer_length), int(dim)))
plt.xlabel('Radius')
plt.ylabel('Number of Radii')

plt.tight_layout()

plt.show()

注:

  • 这只是程序的一部分。我有不同的.txt文件,每个文件包含程序曾经计算过的每个半径。每个文件都需要通过聚合物参数来区分,因此需要单独的直方图

编辑:

多亏了tmdavison,我把代码改成了

plt.title('Histogram for Polymer length {} with monomer length {}, in {}D'.format(polymer_length, int(monomer_length), int(dim)))
plt.xlabel('Radius')
plt.ylabel('Number of Radii')

plt.tight_layout()
plt.figure()

现在,我确实得到了单独的直方图,但它绘制了一个额外的空图


Tags: 文件informatforwith绘制plt直方图
1条回答
网友
1楼 · 发布于 2024-09-27 09:32:12

感谢所有发表评论的人。答案是:

import matplotlib.pyplot as plt
for polymer_length in polymer_lengths:
with open('radii_{0}d_N{1}_l{2}.txt'.format(int(dim), polymer_length, int(monomer_length))) as radii_file:
    radii_raw = radii_file.readlines()
    nice_radii = []
    for ele in radii_raw[1:]:
        nice_radii.append(float(ele))

plt.style.use('fivethirtyeight')
plt.figure() #<   
plt.hist(nice_radii, bins=25, rwidth=0.95)

plt.title('Histogram for Polymer length {} with monomer length {}, in {}D'.format(polymer_length, int(monomer_length), int(dim)))
plt.xlabel('Radius')
plt.ylabel('Number of Radii')

plt.tight_layout()

相关问题 更多 >

    热门问题