使用Python

时间:2017-03-22 17:53:32

标签: python matplotlib plot

我遇到了问题。我尝试在一个图中绘制两个字典(具有相同(数量)键但具有不同的值)。这个想法是制作一个包含两行的折线图;这两本词典。 x轴将是字典键,其中y轴将是两个dicts中的值。我设法使用

绘图

plt.plot(range(len(dict1)), dict1.values()) plt.plot(range(len(dict2)), dict2.values())

当我运行绘图时,它确实显示了两行。但是x轴刻度(来自dict(一个或另一个)的键没有排序,而它们是我打印字典时。我知道这是因为获取dict.values()会创建一个未排序的列表但是当我将绘图数据改为此时: plt.plot(range(len(dict1)), sorted(dict1.values())),图中显示的值不会随之改变。 xticks最终被排序,但线图不再匹配正确的值。我怎么能绕过这个?

1 个答案:

答案 0 :(得分:1)

字典是无序的,因此当您致电keysvalues甚至对它们进行排序时,它们不一定按任何顺序排列。但是,当您同时调用keysvalues并且未修改字典时,这两个函数返回的列表将包含'键:值'在相同的索引中配对。如果词典中的键是数字,那么您可以这样做:

plt.plot(list(dict1.keys()), list(dict1.values()))

这会将键和值转换为列表,因此您可以将它们用作x和y值。