Python 使用matplotlib填充任意区域

Python 使用matplotlib填充任意区域,python,matplotlib,Python,Matplotlib,我正在用matplotlib绘制复杂分类器的决策面。目前,我正在使用一些硬编码尺寸的散点图,以及“看起来”正确的东西。曲面不是线性的,甚至不是连接的。它确实需要逐点绘制 g = np.mgrid[0:2:0.02, 0:10:0.1] xx = np.vstack(map(np.ravel, g)).T pred = clf.predict(xx) plt.scatter(xx[:,0], xx[:,1], c=pred, s=4) plt.show() 如果我的网格太“粗糙”,那么图中

我正在用
matplotlib
绘制复杂分类器的决策面。目前,我正在使用一些硬编码尺寸的散点图,以及“看起来”正确的东西。曲面不是线性的,甚至不是连接的。它确实需要逐点绘制

g = np.mgrid[0:2:0.02, 0:10:0.1]
xx = np.vstack(map(np.ravel, g)).T

pred = clf.predict(xx)

plt.scatter(xx[:,0], xx[:,1], c=pred, s=4)

plt.show()
如果我的网格太“粗糙”,那么图中有空格。如果我的网格太“精细”,我的分类器将永远无法执行预测。如果我的散点图的
s
参数太大,则斑点会相互覆盖。有没有更好的方法用matplotlib填充任意区域

注意,这不是我正在使用的分类器,但您可以使用它来测试上述代码:

clf = sklearn.naive_bayes.GaussianNB()
x = np.array([[0.4,4],[0.6,7]])
y = np.array([0,1])
clf.fit(x,y)
例如:


填充中有“空格”。目前,我正在反复猜测网格
g
、大小
s
和图形大小之间的适当关系。是否有一个
matplotlib
函数,我可以通过它提供一些点,并且它可以聪明地计算出“空格”

您应该只打印图像,或者使用填充图像。如果你有

X, Y = np.mgrid[0:2:0.02, 0:10:0.1]

把它画成

contourf(X, Y, Z)

有几种方法可以控制插值。您可以参考文档。请务必查看文档末尾的示例以获取示例。

显示一个图,并解释您不喜欢它的地方
contourf(X, Y, Z)