【发布时间】:2021-04-24 03:39:45
【问题描述】:
我有每周收集的贸易出口数据。我打算用matplotlib 制作堆积条形图,但管理具有多个索引的熊猫数据框几乎没有困难。我查看了this post,但无法得到我所期望的。任何人都可以建议在 python 中执行此操作的可能方法吗?似乎我进行了错误的数据聚合,我想我可能会使用for loop 来迭代年份,然后在每周的基础上制作堆积条形图。有谁知道如何在matplotlib 中使这更容易?有什么想法吗?
可重现的数据和我的尝试
import pandas as pd
import matplotlib.pyplot as plt
# load the data
url = 'https://gist.githubusercontent.com/adamFlyn/0eb9d60374c8a0c17449eef4583705d7/raw/edea1777466284f2958ffac6cafb86683e08a65e/mydata.csv'
df = pd.read_csv(url, parse_dates=['weekly'])
df.drop('Unnamed: 0', axis=1, inplace=True)
nn = df.set_index(['year','week'])
nn.drop("weekly", axis=1, inplace=True)
f, a = plt.subplots(3,1)
nn.xs('2018').plot(kind='bar',ax=a[0])
nn.xs('2019').plot(kind='bar',ax=a[1])
nn.xs('2020').plot(kind='bar',ax=a[2])
plt.show()
plt.close()
这个尝试对我不起作用。而不是像2018,2019,...这样明确选择年份,是否有更有效的方式为具有多个索引的数据框制作堆积条形图?有什么想法吗?
期望的输出
这是desired stacked bar plot for year of 2018 as an example
我应该如何获得我想要的堆积条形图?有更好的想法吗?
【问题讨论】:
标签: python pandas matplotlib