【发布时间】:2018-02-27 04:10:53
【问题描述】:
我想用任何可以与 matplotlib 接口的 python 模块制作一个像这样的条形图:
以下是示例数据以及我现在可以做什么的说明:
import pandas
from io import StringIO
text="""
Name 1980 1982
A Administration Budget
B Administration Administration
C Administration Administration
D Administration Budget
E Administration Budget
F Administration Administration
G Administration Administration
H Administration Administration
"""
data=pandas.read_fwf(StringIO(text),header=1).set_index("Name")
count=pandas.DataFrame(index=["Administration","Budget"])
for col in data.columns:
count[col]=data[col].value_counts()
count.T.plot(kind="bar",stacked=True)
当我绘制count 时,我得到以下堆积条形图:
我还可以通过做得到 1980 年到 1982 年间从行政部门转到预算部门的人数
pandas.crosstab(data["1980"],data["1982"])
给出:
1982 Administration Budget
1980
Administration 5 3
但是我不知道如何在条形图的每个部分之间绘制流量。有谁知道怎么做?
【问题讨论】:
-
有一个sankey_api 可用。
标签: python pandas matplotlib bar-chart sankey-diagram