如何在 Python 中绘制堆叠图?

问题描述 投票:0回答:2
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: shape mismatch: objects cannot be broadcast to a single shape.

python dataframe matplotlib stacked-chart
2个回答
0
投票

使用的一个选项:

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)
)

输出:


0
投票

使用

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

© www.soinside.com 2019 - 2024. All rights reserved.