开发者学习笔记【阿里云人工智能工程师ACA认证(2023版):数据可视化(一)】
课程地址:https://edu.aliyun.com/course/3112108/lesson/19261
数据可视化(一)
内容介绍:
一、数据可视化的含义及典型图表
二、数据可视化工具 QuickBI & DataV
提问
假设说这里有三个价格,平常价是888元,双12价是680万。平常价格的基础之上打一个85折。那如果想要用更加直观的一个方式去看到这个商品价格的一个变化幅度,我们可以怎么做呢?
我们可以用图表的一个方式去表示这个商品价格的一个变化。幅度很可以看下图把这个平常价双十二的价,还有促销价格都画在了这个图上。并且用一个折线图去来表示它的一些起伏,这样就有更加直观,更具有冲击力的一个印象。
用图表去反映数据,实际上就是我们数据可视化的一个核心内涵。
一、数据可视化的含义及典型图表
(一)定义
数据可视化定义,实际上就是说借助于图形化的一个手段,对我们整个数据加以及解释。数据可视化的一个优点就是方便我们更加直观清晰明了简洁的去看到事物的本质。在进行数据可视化的这个过程当中,我们经常使用到的这些图表主要就包括了直方图、折线图、散点图、饼状图、箱线图,还有小提琴图、雷达图、热力图、树状图、漏斗图啊地理图等等。根据具体的一些应用场景,可以选择不同的呃图表进行这个可视化的一个表达。
(二)常用绘图库 Matplotlib
是一个非常强大的python画图工具,它可以轻松的将数据进行一个图形化的表达。
它可以用来绘制各种静态动态或者 是交互式的一个图片。
它可以绘制包括线图啊、散点图、等高线图、条形图、柱状图、3D图形,甚至是图形动画。
它可以让使用者非常轻松,简单的就将数据进行图形化。并且这个库它也提供了非常多样化的一个输出格式。
(三)直方图的含义和绘图方法
直方图呢它又称之为质量分布图,它是一种统计报告图,是由一系列高低不等的纵向条纹或者线段来表示数据的分布情况的。一般情况下,它是用横轴表示我们的数据类型,纵轴表示它的整体的分布情况。看一下这个图
准备数据
a=np.random.randn(100)
a=pd.Series(a)
plt.figure(figsize=(10,5))
plt.subplot(131)
#matplotlib 绘图
plt.hist(a)
这个直方图它是竖直数据分布的精确图形表示,是一个连续变量的概率分布的一个估计,也是一种条形图。为了构建整个直方图,第一个步骤是将需要的值的一个范围进行一个分段。那也就是要将-2到2区间,对它进行一个分段。
进行分段之后,就可以将整个值的范围分成一系列的一个间隔。接着要做的事情就是计算这些间隔当中有多少个值。这些值通常被指定为连续的不重叠的一个变量间隔。这里可以看到这些间隔必须是相邻的。而且通常情况下,它都是一个相等的大小。直方图被归一化之后,显示整个的相对频率。可以看到这张图的一个Y轴,也就是它的纵轴,它显示的实际上是频次。
当把频次归一化之后,就可以得到它的一个频率了。它整体的横坐标分成了一定数量的小区间,这些区间也叫做箱子,在每个箱子内再去用这个矩形条去展示该箱子的一个箱子数。
在 Matplotlib 当中可以用 plt.hist 函数去对它进行绘制。那这个函数可以看到它输入的一个变量,这个参数X它是一个因为数组,就是一个数组数据,bins 它代表的是直方图当中的箱子个数,默认是零。
接着就来准备一下一个数据。首先A一个随机数去生成,(x,bins=10) 随机生成100个数。随机生成的这00个是先将它转成 Series(a)格式,接着就绘制一个图,只需要将整个的这个数据给它放到 hist 这个函数里面去,可以画出这个图了。
画图的这个第一行 pot.figure 实际上是设置画布的大小。figsize 就是设置长宽比,这里的长是10,宽是5。接着 pot.sublot 这里实际上进行的是一个子图的设置。
这里的一个子图的设置,第一个数131的1它代表的是这一个画布要分成几行,这里是这个画布要分成一行,中间的这个3,它代表的是分成几列,所以前面的13代表的是现在要将整体的画布分成一行三列,第三个数字,它代表的就是现在在第几张图上进行一个绘制。在这里是1就代表是从左往右数起的第一张图。
中间的就是第二张图。最后一个就是第三张图。目前,因为第二张图,第三张图都没有画,所以这两张图不显示,我们只显示画出来的这个第一张图。
(四)折线图的一个含义及绘图方法
折线图它可以显示随时间而变化的连续数据,因此它非常适用于显示在相等时间间隔下数据的一个整体趋势。在折线图当中,类别数据是沿水平轴均匀分布,所有值的数据是沿垂直轴均匀分布的。也就是说类别数据是沿X轴进行分布。
其他的值的数据是沿 Y 轴进行分布的。在 python 当中去实现我们这个折线图,使用到的是 port 函数,这个函数它是绘制二维图形的最基本的函数。其中这个 X 和 Y 表示点或者是线的一个节点,那 X 就是 X 轴的数据,Y 是我们 Y 轴的一个数据。这里的数据可以是列表或者是数据类型。
应用实例
# 数据准备
x=[2010,2011,2012,2013,2014,2015,2016,2017,2018,2019]
y = [5,3, 6,20,17,16,19,30,32, 35]
plt.figure(figsize=(10,5))
plt.subplot(121)
# matplotlib画图
plt.plot(x, y)
首先生成两组数据,一组是 X 另外一组是 Y,接着将 X,Y 放到 plot函数当中,就可以绘制出一个非常简单的的这样的一个折线图了。
(五)散点图的含义及绘图方法
散点图它是指在回归分析当中,数据点在直角坐标系平面上的一个分布图。散点图它表示的是因变量随着自变量而变化的一个大致趋势。根据大致的一个趋势啊,就可以选择合适的函数,对这些数据点进行一个拟合了。
散点图它实际上是将序列显示为一组点,只有点在图表中的位置,表示类别由图表中的不同标记进行一个表示。散点图通常都是用于比较跨类别的一个聚合数据的。在的 python 当中,我们使用到的是 scatter 的这个函数对散点图进行一个绘制。其中的X,Y表示的是长度相同的的数组,也就是即将绘制散点图的一个数据点。示例
plt.scatter(x, y, marker='x')
plt.title('matplotlib drow'
plt.show()
有两组数据,一个X一个Y,将这个X,Y放到 scatter 函数当中,就可以画出散点图。在这里,会看到它有一个参数,marker, marker=X。表示默认模式下的一个散点图,它出现的标记点是原点。如果想要去修改这个标记点,就去更改marker它参数的一个值。
但是等于X就代表说画出来这个点,想用一个差去对它进行一个表示。这些参数值,还有很多其他的一些参数可以去对它进行一些修改。比如说星号,代表的就是星星。
而上三角符号代表的就是上三角形等等。这张图跟前面的图不同的一点在于这里多了一个标题。这个标题就是通过这个 title 函数进行设置的。那最后使用到 plt.show()就可以把整一张图显示出来。
(六)饼状图的含义及绘图方法
饼状图它显示的是一个数据系列,对于每一个数据系列来说,它都是具有唯一的一个颜色或者是图案的。
在饼状图当中,可以给它绘制一个或者是多个的的数据系列。饼状图它表示的就是某个数据序列当中各项的一个大小与总向总和的一个比例。
饼状图它的函数也是在 Matplotlib 库中,调用的是 pie 函数。对于 pie函数来说,首先要传入数据系列,X,X它表示的是每个扇形的一个面积,是必须要传入的一个数据项。
除了X之外,实际上还有很多的待选项啊。比如 explode 或者是 Labels,这两个都是可选参数。explode它表示的是各个扇形之间的一个间距。Labels 它传入的是列表,它代表的是各个扇形的一个标签。
具体的案例应用
# 数据准备
nums =[25,37,33,37, 6]
labels =['High-school','Bachelor','Master','Ph.d','Others']
#用Matplotlib画饼图
plt.pie(x= nums, labels=labels)
plt.show()
假设现在想要绘制的是一个学历层次的人数分布情况。首先,先创建一个变量,这个变量叫做 nums, nums 它代表不同的学历层次的人数。比如高中有25个人,本科有37个人,硕士有33个人,博士有37个人,以及还有一些其他学历的是六个人。
接下来就可以对每一个数去写下他这个数据代表的这个标签是什么,也就是下面的这个变量 labels。将不同数据它代表的意义一一对应的给它写下来。写好了,有了数据之后,就可以去调用 pie 函数去绘制一个饼图。这个时候只需要将数据,就是这个 nums 传到X当中去。然后将 Labels传到参数 Labels 当中去。
最后再调用到 plt.show() 就可以得到一个饼图。在这里,可以看到它每一个数据系列都是有唯一的一个颜色的。
比如说高中是蓝色,本科是橙色,硕士是绿色,博士是红色。那此外它的面积大小,实际上就是这它对应的人数,是人数占总数的比例。其次,explode 参数它的一个默认值是 num 也就是没有。explode 它代表的是各个扇形之间的间距。这个间距实际上就是中间它们相连的一条线。
如果说 explode 它改大,比如改成0.01或者是0.02等等,再去进行画图的话,就可以看到两个扇形之间它都是会有一点空隙的,这个一点空隙就是用 explode 参数进行控制的。那不对它进行设置的时候,它默认每一个扇形之间都是一个紧密相邻的形式。
(七)箱线图它的一个含义及绘图方法
箱线图又被称为盒须图、盒视图、盒状图,或者箱形图。它是一种用作显示一组数据分散情况的统计图。因为它整一个的形状像箱子,所以就叫它叫为箱线图。这种图形在各个领域都经常被使用,尤其是品质管理当中。箱形图它是在1977年的时候,有美国著名的统计学家约翰图基发明的,它能显示出一组数据的最大值、最小值、中位数以及上下四分位数。用 python 去实现箱线图的绘制使用 boxplot 函数。首先需要传入数据X,X就代表每个需要绘制的数据。Labels参数控制的是箱形图的标签。需要传入的是列表。
实例
#数据准备
#生成0-1之间的10*4维度数据
data = np.random.normal(size=(10, 4))
labels=['A', 'B', 'C', 'D']
plt.figure(figsize=(10,5))
plt.subplot(121)
# matplotlib绘制图
plt.boxplot(data, labels=labels)
首先随机函数生成0到1之间的一个10乘4维度的一个数据。并且给他的标签分别命名成A,B,C,D。接着绘制整个画布的大小,以及画图的位置。
最后就可以将生成的 data 传入到 boxplot 函数当中,同时也将 Label 的参数传入到它的标签参数当中。最终就能看到生成的箱线图。如上面这个图所示。在这个过程当中,它红色的这一条线,代表的是中位数。
箱子的两端,就是上四位分位数和下四分位数。另外可以看到有圆点。这些点都是异常值。所以箱线图它还非常常用在离群点或者异常点的检测过程当中。