在matplotlib中绘制一个(x, y)坐标列表
- 论坛
- 在matplotlib中绘制一个(x, y)坐标列表
22 浏览
在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将元组的每个索引绘制为单独的线')
期望的图表
这产生了正确的图表,但使用了太多的代码来解包li
。我需要使用一行代码来解包和绘图,而不是多个列表推导式。
xs = [x[0] for x in li] ys = [x[1] for x in li] plt.plot(xs, ys) plt.title('正确的图表:\n但使用了太多的行来解包li')