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

时间:2014-02-03 03:21:52

标签: python matplotlib plot coordinates

我有一对(a, b)的列表,我想在python中用matplotlib作为实际的x-y坐标。目前,它正在制作两个图,其中列表的索引给出x坐标,第一个图的y值是对中的a s,第二个图的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坐标?

感谢您的帮助!

3 个答案:

答案 0 :(得分:129)

根据this example

import numpy as np
import matplotlib.pyplot as plt

N = 50
x = np.random.rand(N)
y = np.random.rand(N)

plt.scatter(x, y)
plt.show()

将产生:

enter image description here

要将数据从成对解压缩到列表中,请使用zip

x, y = zip(*li)

所以,单线:

plt.scatter(*zip(*li))

答案 1 :(得分:24)

如果你有一个numpy数组,你可以这样做:

import numpy as np
from matplotlib import pyplot as plt

data = np.array([
    [1, 2],
    [2, 3],
    [3, 6],
])
x, y = data.T
plt.scatter(x,y)

答案 2 :(得分:1)

如果您想绘制连接列表中所有点的单行

plt . plot ( li [ : ] )

plt . show ( )

这将绘制一条连接列表中所有对的线,作为从列表的开头到结尾的笛卡尔平面上的点。 我希望这就是你想要的。