嵌套字典到线图-Python

嵌套字典到线图-Python,python,dictionary,matplotlib,Python,Dictionary,Matplotlib,如何使用matplotlib将以下嵌套字典获取到折线图中 理想情况下,在x轴上,我有每个诗人的名字和图表上的4条线,每条线对应每个键(平均句子长度、句子数、最长、最短) poemsD={'Maya Angelou':{'平均句子长度]:16.68, “句子数”:40, “最长”:45, “最短”:2}, 阿曼达·戈尔曼:{“平均句子长度”:14.49, “句子数”:49, “最长”:38, “最短”:3}, 伊丽莎白·亚历山大:{“平均句子长度”:14.57, “句子数”:23, “最长”:40

如何使用matplotlib将以下嵌套字典获取到折线图中

理想情况下,在x轴上,我有每个诗人的名字和图表上的4条线,每条线对应每个键(平均句子长度、句子数、最长、最短)

poemsD={'Maya Angelou':{'平均句子长度]:16.68,
“句子数”:40,
“最长”:45,
“最短”:2},
阿曼达·戈尔曼:{“平均句子长度”:14.49,
“句子数”:49,
“最长”:38,
“最短”:3},
伊丽莎白·亚历山大:{“平均句子长度”:14.57,
“句子数”:23,
“最长”:40,
“最短”:1},
“米勒·威廉姆斯”:{“平均句子长度”:12.83,
“句子数”:24,
“最长”:39,
“最短”:2},
理查德·布兰科:{“平均句子长度”:34.53,
“句子数”:17,
“最长”:63,
“最短”:1},
罗伯特·弗罗斯特:{“平均句子长度”:30.25,
“句子数”:4,
“最长”:37,
“最短”:25}

您可以通过创建Pandas数据框并对其进行打印来创建数据框:

import pandas as pd
import matplotlib.pyplot as plt

poemsD = {'Maya Angelou': {'Average Sentence Lenght': 16.68, 'Number of sentences': 40, 'Longest': 45, 'Shortest': 2},
          'Amanda Gorman': {'Average Sentence Lenght': 14.49, 'Number of sentences': 49, 'Longest': 38, 'Shortest': 3},
          'Elizabeth Alexander': {'Average Sentence Lenght': 14.57, 'Number of sentences': 23, 'Longest': 40, 'Shortest': 1},
          'Miller Williams': {'Average Sentence Lenght': 12.83, 'Number of sentences': 24, 'Longest': 39, 'Shortest': 2},
          'Richard Blanco': {'Average Sentence Lenght': 34.53, 'Number of sentences': 17, 'Longest': 63, 'Shortest': 1},
          'Robert Frost': {'Average Sentence Lenght': 30.25, 'Number of sentences': 4, 'Longest': 37, 'Shortest': 25}}

df = pd.DataFrame(poemsD)
df2 = df.transpose()
df2.plot(figsize = (10,8))
plt.show()

更好的可视化方法是条形图。通过更改一行代码,这是非常容易做到的:

df2.plot(figsize = (10,8), kind = 'bar')

如果你只是要求编写代码而不先尝试一些东西,大多数人都不会高兴。@StephanBernazzani他们是对的,尽管他们本可以不那么尖刻。这个网站有非常严格的礼仪。我的评论中的这篇文章肯定不是很好,但无论如何,你可以从一开始就提醒一下:
Length
拼写错误。在你的代码中写为
Lenght
。我知道你只是给OP提供了一个答案,但是哇,这是一个可怕的数据可视化。OP,请考虑另一种可视化,因为这张图表永远不可能看到白天的光。正确的可视化应该是一个多条形图,但这是OP要求的。我知道,哈哈。我只是。。。吓坏了。@blorgon我编辑了答案,还包括了一个条形图。好多了。多跑一英里的道具,哈哈。