matlab scatter函数绘制实心点_Matplotlib入门-5-plt.scatter( )绘制散点图

18edfb466e7a55d0953caf6f510bf5ca.png

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

aee1fd964ded15e0f7f814052d972ba7.png
认真学习完本章内容,这种图信手拈来

接下来,我们开始学习plt.scatter( )中各参数的作用以及参数值的传入

话不多说,直接上干货


如何查看一个函数有哪些参数?

第一步:以pycharm为例,在代码中,光标移动到函数名上,双击函数名(这里以sactter为例),变为下图显示方式

8154cf162a11f5a75944f39783ea325c.png

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

ac7be5578bf919e13b341832f3cb442f.png

可以看到,在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 

feee5037b918db824db2a167e96f83ef.png

通过上面给出的基本参数进行优化,代码及图如下

import 

7d2f2ea5b622a8214e44e37323e4ba21.png

有些明眼人一看,怎么优化前后两幅图散点的位置不一样了!?~

这就对了,因为这些点是由随机数生成器np.random.rand( )产生的,所以每次都不一样

(2)高级参数讲解

  • cmap →指的是matplotlib.colors.Colormap,相当于多个调色盘的合集
  • norm、vmin、vmax →散点颜色亮度设置

上代码上图,进一步解释

为了演示,这里要用到一点伪随机数生成方法,不做过多解释,不理解的请移步

【数据处理】numpy.random.RandomState的用法

import 

这里从cmap中选取了一个叫做'viridis'的调色盘,其作用是,将参数c中获取到的数值,映射到“色盘”中已经对应好的颜色上,多读两遍,好好理解!

d0873f74787042fc6113e644c7a234f2.png

并且上图中从“色盘”viridis中获取到的颜色,可以通过plt.colorbar( )显示为颜色条(与热力图同理)。

代码和可视化结果图如下所示

import 

5e3d0c02fbbb726ff3f69c5e5d246299.png

从上图上,可以很明显的看出:

颜色映射的这维属性数据(颜色条表示),其值主要集中于[0.4, 0.8]之间

为了更好的观察这维属性数据,可以重新设置颜色条的映射范围

需要用到colors.Normalize( ),使用方法如下:

class matplotlib.colors.Normalize(vmin=None, vmax=None)

参数 vminvmax 分别为要设置的数据范围的最小值和最大值(注意:设置之后,原来大于vmax的值被“拉低”成vmax;原来小于vmin的值被“拉高”成vmin

代码和可视化结果图如下所示

import 

b413964337ad9a49ff2f654293a8d4fc.png

对于数据可视化而言,我们要用多种方式方法,将数据映射到可视化界面上,因此,散点大小,形状,颜色等等均可以表示数据集中的某维属性,好好理解一下!


好了,今天到此为止,希望大家喜欢,动动小手,关注点赞~