在matplotlib中绘制一个(x, y)坐标列表

22 浏览
0 Comments

在matplotlib中绘制一个(x, y)坐标列表

我有一组成对的数据(a, b),我想用Python的matplotlib库将其绘制为实际的x-y坐标。目前,它生成了两个图表,其中列表的索引表示x坐标,第一个图表的y值是成对数据中的a值,第二个图表的y值是成对数据中的b值。

为了澄清,我的数据看起来像这样:li = [(a,b), (c,d), ... , (t, u)],我想要使用一个一行的代码来调用plt.plot()来完成绘图。

如果我不要求一行代码,我可以简单地这样做:

xs = [x[0] for x in li]
ys = [x[1] for x in li]
plt.plot(xs, ys)

如何让matplotlib将这些成对数据绘制为x-y坐标?


示例数据

# 示例数据
li = list(zip(range(1, 14), range(14, 27)))
li → [(1, 14), (2, 15), (3, 16), (4, 17), (5, 18), (6, 19), (7, 20), (8, 21), (9, 22), (10, 23), (11, 24), (12, 25), (13, 26)]

错误的图表

plt.plot(li)
plt.title('错误的图表:\n将元组的每个索引绘制为单独的线')

enter image description here

期望的图表

这产生了正确的图表,但使用了太多的代码来解包li。我需要使用一行代码来解包和绘图,而不是多个列表推导式。

xs = [x[0] for x in li]
ys = [x[1] for x in li]
plt.plot(xs, ys)
plt.title('正确的图表:\n但使用了太多的行来解包li')

enter image description here

0