
在本篇文章中,我们将接触一个新的绘图函数plt.scatter( ),它用于散点图的绘制。从前几篇文章中,我们已经深知,学习Matplotlib绘图其实就是学习绘图函数中的参数!将参数活学活用,不同的参数搭配会产生不同的化学效应!

接下来,我们开始学习plt.scatter( )中各参数的作用以及参数值的传入
话不多说,直接上干货
如何查看一个函数有哪些参数?
第一步:以pycharm为例,在代码中,光标移动到函数名上,双击函数名(这里以sactter为例),变为下图显示方式

第二步:Ctrl+Q,如下图所示,你就能知道该函数有哪些参数了

可以看到,在scatter( )中,其参数如下:
matplotlib下面,我将参数分为两大类,分开讲解
(1)基本参数讲解
- x, y → 散点的坐标
- s → 散点的面积
- c → 散点的颜色(默认值为蓝色,'b',其余颜色同plt.plot( ))
- marker → 散点样式(默认值为实心圆,'o',其余样式同plt.plot( ))
- alpha → 散点透明度([0, 1]之间的数,0表示完全透明,1则表示完全不透明)
- linewidths→散点的边缘线宽
- edgecolors→ 散点的边缘颜色
这里为了生成点的坐标,用到了numpy中的随机数生成器 np.random.rand(d0, d1, ..., dn)
- rand( )函数根据给定维度生成[0,1)之间的随机数据(包含0,不包含1)
- dn表示生成数据的维度
- 返回值为指定维度的array
上代码直观感受
np.random.rand(4)生成了一维数据,如下[0.90906869 0.90382675 0.12846739 0.82934525]
np.random.rand(4,2)生成了二维数据,如下[[0.06704094 0.39773471][0.66768398 0.22644566][0.33790806 0.04170456][0.68308087 0.85099505]]
以此类推 np.random.rand(d0, d1, ..., dn)可以生成n维随机数
有这一利器,我们的随机散点坐标就有了着落,上代码上图
import 
通过上面给出的基本参数进行优化,代码及图如下
import 
有些明眼人一看,怎么优化前后两幅图散点的位置不一样了!?~
这就对了,因为这些点是由随机数生成器np.random.rand( )产生的,所以每次都不一样
(2)高级参数讲解
- cmap →指的是matplotlib.colors.Colormap,相当于多个调色盘的合集
- norm、vmin、vmax →散点颜色亮度设置
上代码上图,进一步解释
为了演示,这里要用到一点伪随机数生成方法,不做过多解释,不理解的请移步
【数据处理】numpy.random.RandomState的用法
import 这里从cmap中选取了一个叫做'viridis'的调色盘,其作用是,将参数c中获取到的数值,映射到“色盘”中已经对应好的颜色上,多读两遍,好好理解!

并且上图中从“色盘”viridis中获取到的颜色,可以通过plt.colorbar( )显示为颜色条(与热力图同理)。
代码和可视化结果图如下所示
import 
从上图上,可以很明显的看出:
颜色映射的这维属性数据(颜色条表示),其值主要集中于[0.4, 0.8]之间
为了更好的观察这维属性数据,可以重新设置颜色条的映射范围
需要用到colors.Normalize( ),使用方法如下:
class matplotlib.colors.Normalize(vmin=None, vmax=None)
参数 vmin、vmax 分别为要设置的数据范围的最小值和最大值(注意:设置之后,原来大于vmax的值被“拉低”成vmax;原来小于vmin的值被“拉高”成vmin)
代码和可视化结果图如下所示
import 
对于数据可视化而言,我们要用多种方式方法,将数据映射到可视化界面上,因此,散点大小,形状,颜色等等均可以表示数据集中的某维属性,好好理解一下!
好了,今天到此为止,希望大家喜欢,动动小手,关注点赞~