16

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

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

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

4

3 回答 3

37

你可以做:

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

甚至在“单线”中:

plt.scatter(*zip(*s))

zip()可用于打包和解包数组,当您调用 using 时method(*list_or_tuple),列表或元组中的每个元素都作为参数传递。

于 2013-07-04T22:34:16.143 回答
2
x = []; y=[]
for point in s:
   x.append(point[0])
   y.append(point[1])
plt.scatter(x,y)
于 2013-07-04T22:31:18.443 回答
2

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

data = np.array(list(s))

首先转换s为列表,然后转换为 NumPy 数组。

现在您有一个列表 op points,要获取 x 和 y 的列表,您可以使用:

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

并制作一个情节:

plt.plot(xs, ys, 'ro')
于 2013-07-05T08:09:50.947 回答