从元组中的点集创建散点图

时间:2013-07-04 22:24:15

标签: python matplotlib set

我在元组中有一组点,如下所示:

>>> s
set([(209, 147),
     (220, 177),
     (222, 181),
     (225, 185),
     (288, 173),
     (211, 155),
     (222, 182)])

这套散点图的正确方法是什么?

3 个答案:

答案 0 :(得分:29)

你可以这样做:

x,y = zip(*s)
plt.scatter(x, y)

甚至是“一线”:

plt.scatter(*zip(*s))

zip() can be used to pack and unpack arrays当您使用method(*list_or_tuple)进行调用时,列表或元组中的每个元素都将作为参数传递。

答案 1 :(得分:2)

x = []; y=[]
for point in s:
   x.append(point[0])
   y.append(point[1])
plt.scatter(x,y)

答案 2 :(得分:1)

如果您想使用NumPy数组,可以使用:

data = np.array(list(s))

首先将s转换为列表而不是NumPy数组。

现在你有一个列表操作点,以获得你可以使用的x和y的列表:

xs = data.transpose()[0]   # or xs = data.T[0] or  xs = data[:,0]
ys = data.transpose()[1]

制作一个情节:

plt.plot(xs, ys, 'ro')