根据变量类别的计数绘制数据集

时间:2016-08-29 05:49:09

标签: python bar-chart categories training-data test-data

我有一个数据集,其中有14列(我只需要使用4列:旅行类,性别,年龄和票价),我已将其分为火车和测试数据集。我需要根据列车数据集创建一个垂直条形图,以便按旅行班分配乘客(1,2和3是班级)。我不允许使用NumPy,Pandas,SciPy和SciKit-Learn。

我是Python的新手,我知道如何绘制非常简单的图形,但是当涉及更复杂的图形时,我会有点迷失。

这是我的代码(我知道有很多错误):

travelling_class = defaultdict(list)
for row in data:
    travelling_class[row[0]]

travelling_class = {key: len(val) for key, val in travelling_class.items()}

keys = travelling_class()
vals = [travelling_class[key] for key in keys]
ind  = range(min(travelling_class.keys()), max(travelling_class.keys()) + 1)
width = 0.6

plt.xticks([i + width/2 for i in ind], ind, ha='center')
plt.xlabel('Tracelling Class') 
plt.ylabel('Counts of Passengers')
plt.title('Number of Passengers per Travelling Class')
plt.ylim(0, 1000)
plt.bar(keys, vals, width)
plt.show()
import matplotlib.pyplot as plt

classes = travelling_class[1, 2, 3]

plt.hist(classes)
plt.show()

@TrakJohnson这是问题的原始提问者 - 对不起,我不小心删掉了我的个人资料,所以不得不换个新的。非常感谢你的帮助。问题是我的数据集是1045行,因此可能很难列出所有这些行。以上看似合理吗?

1 个答案:

答案 0 :(得分:1)

使用plt.hist,它会绘制直方图(more info here)

示例:

import matplotlib.pyplot as plt

classes = [1, 2, 1, 1, 3, 3]

plt.hist(classes)
plt.show()

这就是结果:

Histogram