【发布时间】:2020-12-19 07:18:45
【问题描述】:
我有一组可以用以下代码复制的数据:
import numpy as np
import pandas as pd
Neurons = np.array([
20, 600, 300, 300, 200, 50, 20, 100, 50, 300, 100, 600, 20,20,
600, 200, 200, 600, 600, 100, 200, 200, 300, 200, 100, 50, 100,
600, 200, 300, 20, 20, 200, 300, 600, 600, 100, 300, 200, 300])
Option = np.array([
'Put', 'Put', 'Put', 'Put', 'Put', 'Put', 'Put', 'Put',
'Put', 'Put', 'Put', 'Put', 'Put', 'Put', 'Put', 'Put',
'Call', 'Call', 'Call', 'Call', 'Call', 'Call', 'Call', 'Call',
'Call', 'Call', 'Call', 'Call', 'Call', 'Call', 'Call', 'Call',
'Call', 'Call', 'Call', 'Call', 'Call', 'Call', 'Call', 'Call'])
df = pd.DataFrame({"Neurons" : Neurons, "Option": Option})
“神经元”和“选项”列应视为分类。我想构建一个条形图,其中神经元在 x 轴上按升序显示,在 y 轴上按模型数显示。
例如,有 6 个模型,其中有 20 个神经元,由 4 个 Put 和 2 个 Call 组成。因此,条形图应显示两个条形图,y 轴读数分别为 4 和 2,以两种不同的颜色显示在图例中。这应该对神经元的所有分类值重复。 (一共六个)
这只是数据的一小部分,在完整数据集中,选项列最多有六个分类选项。我想在同一图表上为每个单独的条形图。
任何帮助将不胜感激。提前谢谢你!
【问题讨论】:
-
您的问题是什么?具体来说,您尝试了什么不起作用?如果您不知道如何在 Pandas 中运行条形图,请research 很多关于该主题的文档、教程、博客,甚至 SO 帖子。选择一个实现并返回特定错误或您尝试的不良结果。
-
我知道如何在 pandas 中绘制条形图。话虽如此,它并没有根据分类“选项”变量绘制图表。它仅绘制每个神经元的模型总数。因此,对于每个分类神经元变量,我只得到 1 个柱,但我应该得到两个。这是一个例子:pd.value_counts(df.Neurons).sort_index().plot(kind="bar", align="center", color="blue")
-
请编辑您的问题 - 您无法在 cmets 中格式化代码。
-
值得注意的是,每个类别的单独条形不是堆叠条形图(这是问题标题所要求的)。堆积条形图的每个类别的值在一个条形图中相互叠加。
-
谢谢bsauce。我意识到我上面所说的可能具有误导性,但我希望能够将它们堆叠在一起或彼此相邻。感谢您的帮助。
标签: python pandas bar-chart categorical-data