matplotlib 如何在Python中绘制堆叠图?

omvjsjqw  于 2023-03-03  发布在  Python
关注(0)|答案(2)|浏览(160)
Group_1= {60: 2, 65: 2}
Group_2= {5: 2, 10: 2}
Group_3= {7: 2, 64: 2}
Group_4= {14: 2}

这是4本不同的字典,我的目标是绘制一个堆叠图

  • x轴=组编号
  • y轴=仅字典的值。

我不想在图中使用键,并且Group_4只有一个键和值作为数据。我还附上了图片。
我收到一个错误:
ValueError:形状不匹配:对象不能被广播到单个形状。

f5emj3cl

f5emj3cl1#

使用pandas的一个选项:

import pandas as pd

groups = {1: Group_1, 2: Group_2, 3: Group_3, 4: Group_4}

pd.DataFrame.from_dict(groups, orient='index').plot.bar(stacked=True)

输出:

变体:

(pd.DataFrame.from_dict({k: list(d.values())
                         for k, d in groups.items()},
                         orient='index')
   .plot.bar(stacked=True, legend=False)
)

输出:

0aydgbwb

0aydgbwb2#

一个选项使用matplotlib条形图。

import matplotlib.pyplot as plt

# Create a single structure to hold your groups. Could work with a list as well.
groups = {"1": G1.values(), "2": G2.values(), "3": G3.values(), "4": G4.values()}

for x, values in groups.items():
    bottom = 0
    for value in values:
        plt.bar(x, value, bottom=bottom)
        bottom += value

相关问题