Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用列表迭代字典以创建n个子图_Python_Loops_Dictionary_Matplotlib - Fatal编程技术网

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

Python 使用列表迭代字典以创建n个子图,python,loops,dictionary,matplotlib,Python,Loops,Dictionary,Matplotlib,所以我有一本字典,里面有几个列表: {'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_轴,将它们的索引作为x_轴。我知道我永远不会将它们插入到循环中,但我不知道在matplotlib中最好的方法是什么,因为我对它不太熟悉。

所以我有一本字典,里面有几个列表:

{'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_轴,将它们的索引作为x_轴。我知道我永远不会将它们插入到循环中,但我不知道在matplotlib中最好的方法是什么,因为我对它不太熟悉。

可能是一种不使用循环的方法,但这里有一种使用循环的方法。除非您有一大堆字典,否则这应该可以正常工作:

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()
提供以下信息:

如果您没有Seaborn,请更换

fig, ax = sns.plt.subplots(len(data), 1, figsize=(7,5))
使用简单的matplotlib

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

你好这适用于少量词典,但适用于大量词典(>35)!对于这些数据集,我的替代方案是什么?你能告诉我更多吗?是什么导致了崩溃或者抛出了什么错误?现在我不能再复制错误了。很好,我很高兴。顺便说一句,我怎样才能使每个子批次的标签成为字典中的关键字呢?很高兴它对你有用。如果你满意的话,别忘了接受答案。当然。你能帮我弄一下标签吗?