### Python中scatter方法的解释(用于机器学习)

我是Python和机器学习的新手,作为大学课程的一部分,我们正在使用numpy、matplotlib和sci-kit learn。好吧,我有一个问题。下面的代码运行得很好,我的困惑在于我不太理解发生了什么。所以对于这个代码:

%matplotlib inlineX=iris.dataY=iris.target#第一个特征是萼片长度和萼片宽度plt.scatter(X[:, 0], X[:, 1], c=Y, cmap=plt.cm.Paired)plt.xlabel('萼片长度')plt.ylabel('萼片宽度')

我尝试查看了文档,但对我来说不太理解。在这里我想知道plt.scatter()中的参数是什么意思。我不太理解它,c=Y是什么意思,cmap是什么,为什么有两个X坐标?

至于接下来的代码:

%matplotlib inline#这里也展示了如何进行3D绘图:from mpl_toolkits.mplot3d import Axes3D ##创建一个新图形fig = plt.figure(figsize=(5,5))#这创建了一个1x1的网格(只有一张图),现在我们正在绘制#子图1(这就是111的意思)ax = fig.add_subplot(111, projection='3d') #在3D图中绘制前三个特征。使用 : 表示我们取对应数组维度的所有元素ax.scatter(X[:, 0], X[:, 1], X[:, 2],c=Y)

我想知道的是:

fig.add_subplot(111, projection = ‘3d’)。这里第三个1对我来说不太明白。我理解1×1网格,但我不明白“现在我们正在绘制子图1”。

还有:

ax.scatter()的参数在这里也毫无意义。为什么格式与上面的不同?为什么有三个X而没有cmap?我不太理解它。为什么他们不使用plt.scatter()?


回答:

让我们一步一步地解答你的问题。

首先,“为什么有两个X坐标?”scatter函数(http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.scatter)接受xy坐标来标记点;在这种情况下,xy坐标都存储在一个名为X的二维数组中:X[:,0]只是x坐标,X[:,1]y坐标。“c=Y是什么意思?”:有几种给标记着色的选项:

c 可以是一个单一的颜色格式字符串,或者是一个长度为 N 的颜色规格序列,或者是一个长度为 N 的数字序列,通过kwargs指定的cmap和norm映射到颜色(见下文)。请注意,c 不应该是一个单一的数字RGB或RGBA序列,因为这与要进行颜色映射的值数组无法区分。然而,c 可以是一个2-D数组,其中行是RGB或RGBA,包括单行的情况来为所有点指定相同的颜色。

所以在这种情况下,相关的部分似乎是“N个数字使用cmap映射到颜色”,即你提供数据值,scatter使用某种颜色映射(http://matplotlib.org/examples/color/colormaps_reference.html)来给标记着色。

“fig.add_subplot(111, projection = ‘3d’)。这个第三个1对我来说不太明白。”add_subplot在网格上添加子图,其中111(或者让我们用322作为更清楚的例子)表示一个有3行2列的网格,你正在使用网格上的第二个位置(即第0行,第1列)作为当前子图。所以subplot(111)简单地表示一个有1行1列子图的图形,你正在使用(真是个惊喜…)第一个也是唯一的位置。

“为什么有三个X而没有cmap?”:你首先导入了mpl_toolkits.mplot3d,然后在add_subplot中指定了projection='3d',所以你现在正在创建一个3D的scatter图,这需要指定标记的xyz坐标。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注