【问题标题】:Plot a Data Set According to Counts of Categories of a Variable根据变量的类别计数绘制数据集
【发布时间】:2017-01-05 01:43:08
【问题描述】:

我有一个包含 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 行,所以可能很难列出所有这些。以上看起来合理吗?

【问题讨论】:

  • 你试过编码吗?
  • 嗨,是的,我有:)
  • 我已将代码插入帖子中
  • 您遇到了什么错误?如果您告诉所需的输出会更好
  • 我得到一个指向第 8 行的类型错误:keys = travelling_class() 说“TypeError: 'dict' object is not callable”。抱歉,我应该告诉所需的输出。我需要一个图表,其中 x 轴上有 3 个条形图(每个类 1 个),绘制在 y 轴上的人数(即每个类中的记录数)。

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


【解决方案1】:

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

例子:

import matplotlib.pyplot as plt

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

plt.hist(classes)
plt.show()

结果如下:

【讨论】:

  • 谢谢大家 :) 我怎样才能为数据集中的列中的类做到这一点?抱歉,我对 Python 有点缺乏经验。
  • 不客气 :)。您要做的就是用数值替换类,我认为没有办法将它们保留为字符串。我不知道你使用的是什么类型的数据集,但是应该很容易将其转换为列表并像示例中一样输入。
  • :) 我的数据集来自泰坦尼克号,我必须使用列变量:旅行等级(整数)、性别(整数)、年龄(浮动)和票价(浮动)。旅行舱有 3 个类别(1、2 和 3)。抱歉,我不确定如何给你数据集。所以我必须为变量创建一个列表,然后用三个类别定义旅行舱?谢谢你:)
  • 这就是你必须做的:如果你有 3 个人在第 1 班,1 个人在第 2 班,2 人在第 3 班,那么这就是你的列表的样子(顺序无关紧要):[1, 1, 1, 2, 3, 3]。您可以对性别、年龄和票价做同样的事情。
猜你喜欢
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 2016-09-15
  • 1970-01-01
  • 2021-02-03
相关资源
最近更新 更多