如何在 pandas 中绘制堆叠直方图
How to draw stacked histogram in pandas
我在 pandas 中有此数据:
fork percentage_remains
0 True 20.000000
1 False 9.090909
2 False 2.000000
3 False 0.000000
4 False 0.000000
5 True 33.333333
6 False 20.000000
...
我想绘制堆叠直方图,其中 x 轴为 percentage_remains
,y 轴为 degree
(这意味着该容器中的项目数)并且它会按 fork
分组 - 同一图中的两个堆叠直方图,其中第一个直方图针对具有 fork == True
的所有值,第二个直方图针对具有 fork == False
的所有值。我正在尝试:
subset.plot(kind="hist", stacked=True, by="fork")
但它创建了这个图像: 并且从这个直方图中的标签和值来看,这似乎实际上并没有按 "fork" 属性分组。
这样的事情怎么样
import matplotlib.pyplot as plt
subset = pd.DataFrame({'fork': {0: True, 1: False, 2: False, 3: False, 4: False, 5: True, 6: False},
'percentage_remains': {0: 20.0,
1: 9.0909089999999999,
2: 2.0,
3: 0.0,
4: 0.0,
5: 33.333333000000003,
6: 20.0}})
通过布尔索引过滤 fork == True
filter = subset["fork"] == True`
那就直接用matplotlib吧。请注意,我正在传递一个列表,一个元素是真值,另一个是假值
plt.hist([subset["percentage_remains"][filter],subset["percentage_remains"][~filter]],
stacked=True)
plt.show()
我在 pandas 中有此数据:
fork percentage_remains
0 True 20.000000
1 False 9.090909
2 False 2.000000
3 False 0.000000
4 False 0.000000
5 True 33.333333
6 False 20.000000
...
我想绘制堆叠直方图,其中 x 轴为 percentage_remains
,y 轴为 degree
(这意味着该容器中的项目数)并且它会按 fork
分组 - 同一图中的两个堆叠直方图,其中第一个直方图针对具有 fork == True
的所有值,第二个直方图针对具有 fork == False
的所有值。我正在尝试:
subset.plot(kind="hist", stacked=True, by="fork")
但它创建了这个图像:
这样的事情怎么样
import matplotlib.pyplot as plt
subset = pd.DataFrame({'fork': {0: True, 1: False, 2: False, 3: False, 4: False, 5: True, 6: False},
'percentage_remains': {0: 20.0,
1: 9.0909089999999999,
2: 2.0,
3: 0.0,
4: 0.0,
5: 33.333333000000003,
6: 20.0}})
通过布尔索引过滤 fork == True
filter = subset["fork"] == True`
那就直接用matplotlib吧。请注意,我正在传递一个列表,一个元素是真值,另一个是假值
plt.hist([subset["percentage_remains"][filter],subset["percentage_remains"][~filter]],
stacked=True)
plt.show()