首页 > 解决方案 > 绘制来自 .txt 文件的数据的直方图,其中 x 轴上的名称和 y 轴上的数字

问题描述

我是编程新手,我尝试为值绘制直方图。这是我第一次尝试在 x 轴上绘制名称的直方图。我浏览了这些帖子,但没有发现任何帮助。我将非常感谢并感谢您的帮助。

保存在.txt文件中的数据

数据

Seyfert1    112
Seyfert2    42
Quasars     131
QuasarsSeyfert1 46
Radiogalaxy    5
BLlacHP       39
Seyfert3    5
HeIIRegions 55

使用的代码如下所示。

import matplotlib.pyplot as plt
import numpy as np
import matplotlib

f = open('hist.txt','r')
x,y = np.loadtxt(f,unpack=True, usecols=[0,1])
plt.hist(y, bins=10, histtype='bar',facecolor = 'red',  rwidth=1.0)
plt.xlabel('Type of AGN',fontsize=15)
plt.ylabel('Number of galaxies',fontsize=15)
plt.title('Distribution of Type of active galaxies',fontsize=15)
plt.savefig('hist1.pdf',fmt='pdf')
plt.show()

我用同样的方法用数字绘制直方图。不知道我哪里出错了。

标签: pythonmatplotlibhistogram

解决方案


在 Mr.JohanC 的帮助下,我找到了问题的答案。

这是最后的程序

import matplotlib.pyplot as plt
import numpy as np
import matplotlib


f = open('hist.txt','r')
x, y = np.loadtxt(f, unpack=True, usecols=[0, 1], dtype=str)
y = y.astype(int)
plt.bar(x, y)
plt.tick_params(axis='x', labelrotation=10, labelsize= 10)
plt.xlabel('Type of AGN',fontsize=15)
plt.ylabel('Number of galaxies',fontsize=15)
plt.title('Distribution of Type of active galaxies',fontsize=15)
plt.tight_layout()
plt.savefig('hist_gal.pdf',fmt='pdf')
plt.show()

推荐阅读