绘制python matplotlib中的(x,y)坐标列表
我有一对列表(a, b)
,我想用matplotlib
在python中作为实际的xy坐标进行绘图。 目前,它正在绘制两张图,其中列表的索引给出了x坐标,第一个图的y值是对中a
s,第二个图的y值是对中的b
s。
为了澄清,我的数据如下所示: 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把这些对绘制成xy坐标?
感谢所有的帮助!
按照这个例子 :
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()
会产生:
要将数据从对中解压缩到列表中,请使用zip
:
x, y = zip(*li)
所以,单线:
plt.scatter(*zip(*li))
如果你有一个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)
如果要绘制连接列表中所有点的单个线条
plt . plot ( li [ : ] ) plt . show ( )
这将绘制一条连接列表中的所有对作为笛卡尔平面上的点从列表的开始到结束的直线。 我希望这是你想要的。