使用列表迭代字典以创建n个子图

时间:2016-06-22 16:55:36

标签: python loops dictionary matplotlib

Type of chart that I want 所以我有一个包含几个列表的字典:

{'A' : [1,2,4,6,7,8,10],
'B' : [1,2,4,6,4,3,7],
'C' : [3,2,1,6,2,3,4]}

同时,这些词典是由一个函数生成的,它们有不同的大小,但它们永远不会超过...... 6,7?

我需要找到一种方法来绘制(matplotlib)与我的字典中的条目数一样多的堆积图表,将字典中的值作为我的y_axis,将它们的索引作为x_axis。我强调我永远不会将它们插入循环中,但我不知道在matplotlib中最好的方法是什么,因为我并不精通它。

1 个答案:

答案 0 :(得分:2)

没有循环可能是一种方法,但这是一种循环方式。除非你有这些词典的负载和负载,否则这应该可以正常工作:

/build-tool

提供以下内容:enter image description here

如果您没有Seaborn,请替换

import numpy as np
import seaborn as sns
from matplotlib import pyplot as plt

data = {'A' : [1,2,4,6,7,8,10],'B' : [1,2,4,6,4,3,7], 'C' : [3,2,1,6,2,3,4]}
fig, ax = sns.plt.subplots(len(data), 1, figsize=(7,5))
for a,key in zip(ax,data.keys() ):
    y = data[key]
    n = len(y)
    x = np.linspace(1,n,n)
    a.plot(x,y)
    # add labels/titles and such here

plt.show()

使用普通的matplotlib

fig, ax = sns.plt.subplots(len(data), 1, figsize=(7,5))