【问题标题】:how to plot each key of a dictionary in python?如何在python中绘制字典的每个键?
【发布时间】:2021-04-28 06:36:34
【问题描述】:

我有一个列表类型的 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

【问题讨论】:

  • 你的意思是Histogram by hist和Dictionary by dic吗?

标签: python dictionary matplotlib plot histogram


【解决方案1】:

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

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}]}]

假设 subdict 列表中的每个键都是唯一的:

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

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

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()

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

【讨论】:

  • 双重列表理解(final_dict):对于我列表中的每个元素,取键并作为值:合并列表中的每个条目“元素[”结果“]”
  • 你能告诉我你把标题放在代码的什么地方吗? (keys)
  • plt.title(k) 在 for 循环中
  • 是否可以根据频率对每个图表进行排序?
  • 最简单的方法是在绘图前对数据进行排序,检查stackoverflow.com/questions/613183/…
猜你喜欢
  • 2022-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 2011-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多