如何在 python 中绘制字典的每个键?

how to plot each key of a dictionary in python?

我有一个列表类型的dic。像这样:

{'key': '3d animator',
  'Results': [{'freelance artist': 1}, {'3d artist': 2}]},
 {'key': '3d artist',
  'Results': [{'sous chef': 1},
   {'3d animator': 2},
   {'art director': 1},
   {'artist': 1}]},
 {'key': '3d designer',
  'Results': [{'network administrator': 1}, {'None': 1}]}

我可以为每个 key 绘制图表,并通过直方图显示 values ('Results) 的频率吗 ?例如,对于 key= 3d animator,一个直方图,横轴为 'freelance artist'3d artist,纵轴为频率 12?

第一个建议是重新格式化您的数据:

my_list = [{'key': '3d animator',
  'Results': [{'freelance artist': 1}, {'3d artist': 2}]},
 {'key': '3d artist',
  'Results': [{'sous chef': 1},
   {'3d animator': 2},
   {'art director': 1},
   {'artist': 1}]},
 {'key': '3d designer',
  'Results': [{'network administrator': 1}, {'None': 1}]}]

假设子字典列表中的每个键都是唯一的:

final_dict = {elem["key"]:{k: v for d in elem["Results"] for k, v in d.items()} for elem in my_list}

然后绘制外部字典(数据集)的每个值(字典):

import matplotlib.pyplot as plt
for k,v in final_dict.items():
    plt.figure()
    plt.title(k)
    plt.bar(list(v.keys()), v.values())
plt.show()

这会为数据集的每个键绘制一个图表(如果您需要的话)。