我有一组嵌套字典,正在为其生成子图。我需要阅读并过滤字典中的最终答案,然后根据字典树中的变量绘制结果图。在某些情况下,树上的变量是用于切片其他数据集的索引:
for field in data.keys():
if field.startswith('Header'):
for subheading in data.get(field):
for index, answer in data.get(field).get(subheading).get('Directory').items():
if answer=='yes':
axes.plot(index, seconddataset[subheading]...
我想为完整循环的每次迭代生成一个单独的子图,最好将其布置在单个列中(其他列也有其他用途)。如果我知道从循环中获得的实例总数,那么我可以使用
plt.subplots(rows, columns)
并用axes[row,column].plot(...)
索引每个实例。当我尝试fig.add_subplot
方法时,我会不断获得嵌套嵌套的子图-子图不会更新其位置以反映每次循环迭代时都会增长的图形。也许这是不好的代码实践,所以我也有一个版本,其中通过迭代字典时仅计算
'yes'
答案的数量,然后将其与上面的plt.subplots(rows,columns)
策略一起使用来获取条目的总数。为此,我必须编写条件嵌套循环并对其进行第二次迭代(一次获得总计,然后再次绘制子图),但这似乎效率不高。 最佳答案
有时写下您的问题会为您提供答案。如果有任何评论或类似问题,我将在这里写下。遍历嵌套字典时,除了计算/收集终端answers
之外,我还收集了以后需要作图的变量,并将它们附加在列表中。
for field in data.keys():
if field.startswith('Header'):
for subheading in data.get(field):
for index, answer in data.get(field).get(subheading).get('Directory').items():
if answer=='yes':
subheading_list.append(subheading)
index_list.append(index)
fig,axes = plt.subplots(len(index_list),3)
for i in range (0,len(index_list)):
axes[i,0].plot(index_list[i], seconddataset[subheading_list[i]]...
关于python - 在matplotlib中迭代添加子图,总数未知,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52708886/