python中两列相关的多个histograms/bar图表如何做?
How to do multiple histograms/bar charts related to two columns in python?
我有一个包含多行和多列的数据集。简化:
A B
g 1
h 2
h 3
g 3
j 4
g 5
其中 A 是手术代码,B 是住院时间。所以,每一行对应一个病人。
我想绘制 A 列和 B 列的多个图(每个类别一个)。在这个例子中:
图 1:一个图,其中 x 代表每位接受 "g" 手术的患者,y 代表每位患者的住院时间。所以对于这个图,必须存在 3 个条形,因为有 3 个患者接受了 "g" 手术;
图 2:一个图,其中 x 代表每位接受 "h" 手术的患者,y 代表每位患者的住院时间。所以对于这个图,必须存在 2 个柱子,因为有 2 个患者接受了 "h" 手术;
图 3:一个图,其中 x 代表每位接受 "j" 手术的患者,y 代表每位患者的住院时间。所以对于这个图,必须存在 1 个条形,因为有 1 个患者接受了 "j" 手术;
谁能帮帮我?
你可以这样做,获取 pandas 中的数据集作为 df:
>>> import pandas as pd
>>> import matplotlib.pyplot as plt
>>> df = pd.DataFrame({'A':['g', 'h', 'h', 'g', 'j', 'g'], 'B':[1, 2, 3, 3, 4, 5]})
>>> df
A B
0 g 1
1 h 2
2 h 3
3 g 3
4 j 4
5 g 5
>>> df.groupby('A').plot(kind = 'bar')
A
g AxesSubplot(0.125,0.11;0.775x0.77)
h AxesSubplot(0.125,0.11;0.775x0.77)
j AxesSubplot(0.125,0.11;0.775x0.77)
dtype: object
>>> plt.show() #you'll see 3 different figures for that.
我有一个包含多行和多列的数据集。简化:
A B
g 1
h 2
h 3
g 3
j 4
g 5
其中 A 是手术代码,B 是住院时间。所以,每一行对应一个病人。
我想绘制 A 列和 B 列的多个图(每个类别一个)。在这个例子中:
图 1:一个图,其中 x 代表每位接受 "g" 手术的患者,y 代表每位患者的住院时间。所以对于这个图,必须存在 3 个条形,因为有 3 个患者接受了 "g" 手术;
图 2:一个图,其中 x 代表每位接受 "h" 手术的患者,y 代表每位患者的住院时间。所以对于这个图,必须存在 2 个柱子,因为有 2 个患者接受了 "h" 手术;
图 3:一个图,其中 x 代表每位接受 "j" 手术的患者,y 代表每位患者的住院时间。所以对于这个图,必须存在 1 个条形,因为有 1 个患者接受了 "j" 手术;
谁能帮帮我?
你可以这样做,获取 pandas 中的数据集作为 df:
>>> import pandas as pd
>>> import matplotlib.pyplot as plt
>>> df = pd.DataFrame({'A':['g', 'h', 'h', 'g', 'j', 'g'], 'B':[1, 2, 3, 3, 4, 5]})
>>> df
A B
0 g 1
1 h 2
2 h 3
3 g 3
4 j 4
5 g 5
>>> df.groupby('A').plot(kind = 'bar')
A
g AxesSubplot(0.125,0.11;0.775x0.77)
h AxesSubplot(0.125,0.11;0.775x0.77)
j AxesSubplot(0.125,0.11;0.775x0.77)
dtype: object
>>> plt.show() #you'll see 3 different figures for that.