绘制每个键具有多个值的字典

Jsg*_*g91 4 python dictionary matplotlib

我有一本看起来像这样的字典:

1: ['4026', '4024', '1940', '2912', '2916], 2: ['3139', '2464'], 3:['212']...
Run Code Online (Sandbox Code Playgroud)

对于几百个键,我想用键作为 y 为其一组 x 值绘制它们,我尝试了这段代码,它给出了下面的错误:

for rank, structs in b.iteritems():
    y = b.keys()
    x = b.values()
    ax.plot(x, y, 'ro')
    plt.show()

ValueError: setting an array element with a sequence
Run Code Online (Sandbox Code Playgroud)

我对如何进行有点不知所措,所以任何帮助将不胜感激!

zha*_*hen 6

您需要手动构建 Xs 和 Ys 列表:

In [258]: b={1: ['4026', '4024', '1940', '2912', '2916'], 2: ['3139', '2464'], 3:['212']}

In [259]: xs, ys=zip(*((int(x), k) for k in b for x in b[k]))

In [260]: xs, ys
Out[260]: ((4026, 4024, 1940, 2912, 2916, 3139, 2464, 212), (1, 1, 1, 1, 1, 2, 2, 3))

In [261]: plt.plot(xs, ys, 'ro')
     ...: plt.show()
Run Code Online (Sandbox Code Playgroud)

结果: 在此处输入图片说明