python散点图区域如何设置成一个凸的形状

Python038

python散点图区域如何设置成一个凸的形状,第1张

利用Python绘制酷炫的散点图

Python程序员

2021年8月27日12:00

关注

文章:菜J学Python

1

散点图概述

一、什么是散点图?

散点图是指在数理统计回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,由此趋势可以选择合适的函数进行经验分布的拟合,进而找到变量之间的函数关系

二、散点图有什么用处?

1、数据用图表来展示,显然比较直观,在工作汇报等场合能起到事半功倍的效果,让听者更容易接受,理解你所处理的数据。

2、散点图更偏向于研究型图表,能让我们发现变量之间隐藏的关系为我们决策作出重要的引导作用。

3、散点图核心的价值在于发现变量之间的关系,千万不要简单地将这个关系理解为线性回归关系。变量间的关系有很多,如线性关系、指数关系、对数关系等等,当然,没有关系也是一种重要的关系。

4、散点图经过回归分析之后,可以对相关对象进行预测分析,进而做出科学的决策,而不是模棱两可。比如说:医学里的白细胞散点图可以在医学检测方面为我们健康提供精确的分析,为医生后续的判断做出重要的技术支持。

三、散点图的基本构成要素

散点图主要的构成元素有:数据源,横纵坐标轴,变量名,研究的对象。而基本的要素就是点,也就是我们统计的数据,由这些点的分布我们才能观察出变量之间的关系。

而散点图一般研究的是两个变量之间的关系,往往满足不了我们日常的需求。因此,气泡图的诞生就是为散点图增加变量,提供更加丰富的信息,点的大小或者颜色可以定义为第三个变量,因为,做出来的散点图类似气泡,也由此得名为气泡图。

2

散点图绘制

一、简单散点图

数据越多散点图呈现的效果就越明显。这也就是我们平时在进行建模的时候,采用回归拟合的原则,如果数据是遵循某种函数关系,我们可以通过机器进行训练,不断的迭代达到最优效果。

二、多维数据散点图

我们在平时的运用场景中,发现散点图太多呈现的效果图太密集了,我们只需要知道某一个区域它分布的数量,本来柱状图可以解决,但是这个散点图一个更好,可以反映区域的分布,主要可以看见它的数量趋势变化,根据自己的业务需求来使用吧。

三、散点图显示分割线

显示分割线,其实和之前的没有异样。

四、散点图凸出大小(二维)

用二维的数据来展示每个类别的分布状况,图表可显示多个类别,这样极大的增强了我们解释的效果。

五、3D散点图展示

六、动态涟漪散点图

之前的散点都是静态的,下面我们来看看动态的散点图。

七、箭头标志散点图

几乎散点图都差不多介绍到这里了,其实用的最广的还是第一个,其他的根据你的场景来具体使用吧。

免责声明

1、打开自己的winPython程序,如图所示;

2、建立一个脚本文件;

3、导入要用到的一些库文件;

import numpy as np

from numpy import *

import matplotlib.pyplot as plt

4、填入我们要画出的数据点;

dataSet=mat([[-0.017,14.05],[-3.4,2.01],[-6.1,3.4]]).T

5、采用以下代码画出我们的散点图

plt.scatter(dataSet[0],dataSet[1],c='red',marker='o')

6、执行我们的代码后可以看到我们的结果。

接受自己的普通,然后全力以赴的出众,告诉自己要努力,但不要着急....

当然, 这个结果并不是我真正想要的,Pass, 太丑了!

好吧,安排,我们先看下实现后的效果!

这个效果自然就比之前的好多了!

实现python散点图绘制需要用到matplotlib库, matplotlib库是专门用于可视化绘图的工具库;学习一个新的库当然看官方文档了: https://www.osgeo.cn/matplotlib/contents.html

实现思路:

matplotlib.pyplot.scatter() 函数是专门绘制散点图的函数: https://www.osgeo.cn/matplotlib/api/_as_gen/matplotlib.pyplot.scatter.html?highlight=scatter#matplotlib.pyplot.scatter

matplotlib.pyplot.scatter ( x, y , s=None , c=None , marker=None , cmap=None , norm=None , vmin=None , vmax=None , alpha=None , linewidths=None , verts=None , edgecolors=None , ***, data=None , ** kwargs ) **

plt.scatter(observation, estimate, c=Z1, cmap=colormap, marker=".", s=marker_size, norm=colors.LogNorm(vmin=Z1.min(), vmax=0.5 * Z1.max()))

其中:

1、c参数为计算的散点密度

2、cmap为色带(matplotlib里面自带了很多色带可供选择),参见:

https://www.osgeo.cn/matplotlib/gallery/color/colormap_reference.html

3、由于计算的散点密度数值大小分散,因此利用norm参数对散点密度Z1进行归一化处理(归一化方式很多,参见colors类),并给归一化方式设置色带刻度的最大最小值vmin和vmax(一般这两个参数就是指定散点密度的最小值和最大值),这样就建立起了密度与色带的映射关系。

https://matplotlib.org/tutorials/colors/colormapnorms.html

(这里的结果与前面展示的相比改变了计算散点密度的半径:radius = 3以及绘制散点图的散点大小marksize)

作者能力水平有限,欢迎各位批评指正!