我正在使用matplotlib
和python 3.7绘制费用报告,并将其分为几类。
目标是绘制多条图以逐年比较数据。
我找到了一种使用折线图的方法,但没有使用更合适的条形图,因为条形线彼此重叠。
这是用于生成该图的代码:
data = {'category 1': 120.50,
'category 2': 135.59,
'category 3': 130.71,
'category 4': 150.71}
group_data = list(data.values())
group_names = list(data.keys())
fig, axs = plt.subplots(2)
axs[0].plot(group_names, group_data, label="2020")
axs[0].plot(group_names, [v * 1.1 for v in group_data], label="2019")
axs[1].bar(group_names, group_data, label="2020")
axs[1].bar(group_names, [v * 1.1 for v in group_data], label="2019")
axs[0].legend()
查看了官方文档(https://matplotlib.org/3.2.1/gallery/lines_bars_and_markers/categorical_variables.html),但找不到合适的解决方案。
答案 0 :(得分:1)
您可以考虑使用熊猫来实现简单的绘图功能:
import pandas as pd
# 2020 data
df = pd.DataFrame({'2020':data})
# 2019 data
df['2019'] = df['2020'] * 1.1
# plot bar
df.plot.bar()
输出:
答案 1 :(得分:0)