matplotlib 具有不同x轴的堆叠条形图

hjzp0vay  于 2023-05-23  发布在  其他
关注(0)|答案(1)|浏览(149)

我正在使用matplotlib创建一个堆叠条形图。
我有多个数组要绘制,但为了这个问题,我将其简化为2。

rates = [4, 4.1, 4.2, 4.3, 4.4, 4.5]
counts = [12, 17, 22, 9, 12, 18]

rates1 = [4.3, 4.4]
counts1 = [24, 17]

我想绘制一个比率与计数的条形图,上面堆叠着rates1条。
我得到一个错误,由于数组的大小不匹配。
我相信我需要填写的地方率是“失踪”,如。4.1,具有零值。但我不想硬编码。我也不能只是填补了零的名单结束,然后计数不会与正确率对齐。

pnwntuvh

pnwntuvh1#

你可以对数组使用字典,然后使用dict解析来填充缺失的数据点:

data = dict(zip(rates, counts)
data
>>> {4: 12, 4.1: 17, 4.2: 22, 4.3: 9, 4.4: 12, 4.5: 18}
data1 = dict(zip(rates1, counts1)
data1
>>> {4.3: 24, 4.4: 17}
data1 = {k: data1[k] if k in data1 else 0 for k in data}
data1
>>> {4: 0, 4.1: 0, 4.2: 0, 4.3: 24, 4.4: 17, 4.5: 0}

要访问数据,可以使用dict.keys()(用于速率)和dict.values()(用于计数)方法。

**编辑:**正如colidyre所评论的,在迭代字典时不需要.keys()方法。所以我把它从我的答案中删除了。

相关问题