|
|
51CTO旗下网站
|
|
移动端

为什么你觉得Matplotlib用起来困难?因为你还没看过这个思维导图

Matplotlib是一个流行的Python库,可以很容易地用于创建数据可视化。

作者:机器学习与数据分析来源:今日头条|2020-01-22 16:29

 前言

Matplotlib是一个流行的Python库,可以很容易地用于创建数据可视化。然而,设置数据、参数、图形和绘图在每次执行新项目时都可能变得非常混乱和繁琐。而且由于应用不同,我们不知道选择哪一个图例,比如直方图,饼状图,曲线图等等。这里有一个很棒的思维导图,可以帮助您为工作选择正确的可视化效果:

为什么你觉得Matplotlib用起来困难?因为你还没看过这个思维导图

我们对于这张思维导图中的主要图例做一些解释:

散点图

散点图非常适合显示两个变量之间的关系,因为您可以直接看到数据的原始分布。您还可以通过如下图所示的对组进行颜色编码来查看不同数据组的这种关系。

为什么你觉得Matplotlib用起来困难?因为你还没看过这个思维导图

想要可视化三个变量之间的关系吗?!完全没有异议只需使用另一个参数(如点大小)对第三个变量进行编码,如下面的第二个图所示,我们把这个图叫做冒泡图。

为什么你觉得Matplotlib用起来困难?因为你还没看过这个思维导图

散点图函数举例:

  1. scatter(x_data,y_data,s=10,color=color,alpha=0.75

线图

当你能清楚地看到一个变量与另一个变量之间变化很大时,最好使用线图。让我们看看下面的图来说明。我们可以清楚地看到,所有专业的百分比随时间变化很大。用散点图来绘制这些图会非常杂乱,很难真正理解和看到发生了什么。直线图非常适合这种情况,因为它基本上可以快速总结两个变量(百分比和时间)的协方差。同样,我们也可以通过颜色编码来使用分组。

为什么你觉得Matplotlib用起来困难?因为你还没看过这个思维导图

线图代码举例:

  1. plot(x_data, y_data, lw = 2, color = '#539caf', alpha = 1

直方图

直方图对于查看(或真正发现)数据点的分布很有用。看看下面的柱状图,我们绘制了频率和智商的柱状图。我们可以清楚地看到向中心的浓度和中值是什么。我们也可以看到它遵循一个高斯分布。使用条形图(而不是散点图)可以让我们清楚地看到每个箱子频率之间的相对差异。使用箱子(离散化)真的帮助我们看到“更大的画面”,如果我们使用所有没有离散箱子的数据点,在可视化中可能会有很多噪音,使我们很难看到到底发生了什么。

为什么你觉得Matplotlib用起来困难?因为你还没看过这个思维导图

假设我们要比较数据中两个变量的分布。有人可能会认为,你必须制作两个独立的直方图,把它们放在一起比较。但是,实际上有一个更好的方法:我们可以用不同的透明度覆盖直方图。看看下面的图。均匀分布的透明度设为0。5这样我们就能看到它的背后。这允许使用直接查看同一图上的两个分布。

为什么你觉得Matplotlib用起来困难?因为你还没看过这个思维导图

直方图代码举例:

  1. hist(data, n_bins = n_bins, cumulative = cumulative, color = '#539caf'

条形图

当您试图将类别很少(可能少于10个)的分类数据可视化时,条形图是最有效的。如果我们有太多的类别,那么图中的条形图就会非常混乱,很难理解。它们非常适合分类数据,因为您可以根据条形图的大小;分类也很容易划分和颜色编码。我们将看到三种不同类型的条形图:常规的、分组的和堆叠的:

为什么你觉得Matplotlib用起来困难?因为你还没看过这个思维导图

常规的条形图代码举例:

  1. bar(x_data, y_data, color = '#539caf', align = 'center'
为什么你觉得Matplotlib用起来困难?因为你还没看过这个思维导图

分组图代码举例:

  1. foriinrange(0,len(y_data_list)):    if i == 0:        bar(x_data,y_data_list[i],color=colors[i],align='center',label=y_data_names[i])else:  bar(x_data,y_data_list[i],color=colors[i],bottom=y_data_list[i-1],align='center',label=y_data_names[i]) 
为什么你觉得Matplotlib用起来困难?因为你还没看过这个思维导图

堆叠图代码举例:

  1. for i in range(0, len(y_data_list)):bar(x_data+alteration[i],y_data_list[i],color=colors[i],label=y_data_names[i],width=ind_width) 

【编辑推荐】

  1. 一文看懂人工智能的六个关键概念和实施AI项目的七个注意事项
  2. 人工智能在网络安全领域的应用
  3. 掌握这六步,搭建机器学习项目
  4. 为什么我用Go写机器学习部署平台,而偏偏不用Python?
  5. 性能提升25倍:Rust有望取代C和C++,成为机器学习首选的Python后端
【责任编辑:张燕妮 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

Python应用场景实战手册

Python应用场景实战手册

Python应用场景实战手册
共3章 | KaliArch

19人订阅学习

一步到位玩儿透Ansible

一步到位玩儿透Ansible

Ansible
共17章 | 骏马金龙1

198人订阅学习

云架构师修炼手册

云架构师修炼手册

云架构师的必备技能
共3章 | Allen在路上

35人订阅学习

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微