我在元组中有一组点,如下所示:
>>> s
set([(209, 147),
(220, 177),
(222, 181),
(225, 185),
(288, 173),
(211, 155),
(222, 182)])
这套散点图的正确方法是什么?
答案 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')