Python 使用matplotlib打印[x,y]

Python 使用matplotlib打印[x,y],python,matplotlib,Python,Matplotlib,我尝试使用以下代码绘制knn的散点图,其给出以下错误: TypeError:zip参数#1必须支持迭代 您的数据位于列表的列表的列表的中,试图从中获取散点图可能需要将主列表的平展为列表的列表的;从而将尺寸减少到2D。虽然以下不是从数据中获取散点图的唯一方法,但它仍然是一个不错的起点: import matplotlib.pyplot as plt from functools import reduce plt.scatter(*zip(*reduce(lambda x,y: x+y, l))

我尝试使用以下代码绘制knn的散点图,其给出以下错误:

TypeError:zip参数#1必须支持迭代


您的数据位于
列表的
列表的
列表的
中,试图从中获取散点图可能需要将主
列表的
平展为
列表的
列表的
;从而将尺寸减少到2D。虽然以下不是从数据中获取散点图的唯一方法,但它仍然是一个不错的起点:

import matplotlib.pyplot as plt
from functools import reduce

plt.scatter(*zip(*reduce(lambda x,y: x+y, l)), c='r', s=100)
plt.show()
减少
l
的维度还有无数其他方法。这个正好对我来说很整洁


我希望这能有所帮助。

一个完整的例子会有帮助。你希望
分散
对你的数据有什么作用
len(l)Out[12]:4
[len(a)for a in l]Out[13]:[14,9,39,38]
import matplotlib.pyplot as plt
from functools import reduce

plt.scatter(*zip(*reduce(lambda x,y: x+y, l)), c='r', s=100)
plt.show()