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

作者: 机器学习与数据分析 2020-01-22 16:29:52

 前言

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) 
机器学习 人工智能 计算机
上一篇:性能提升25倍:Rust有望取代C和C++,成为机器学习首选的Python后端 下一篇:阿里开源MNNKit:基于MNN的移动端深度学习SDK,支持安卓和iOS
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

MIT提出Liquid机器学习系统,可像液体一样适应动态变化

麻省理工学院(MIT)的研究者开发出了一种新型的神经网络,其不仅能在训练阶段学习,而且还能持续不断地适应。

机器之心 ·  2021-02-21 15:47:47
规划智慧城市时,别忘了无障碍通行

要想成为一个智慧城市甚至一个智慧世界,虽然可能需要时间和有针对性的规划,但我们必须以人为本。

蒙光伟 ·  2021-02-21 10:26:41
2021关于人工智能的五大趋势

数字化变革,比过去10年更多,这主要是由于远程工作的规模,以及企业迅速部署了必要的技术,尤其是与网络安全相关的技术。那,2021关于人工智能的五大趋势会是如何的呢?

Lichu ·  2021-02-21 10:21:01
使数据中心更智能:人工智能如何发挥作用?

随着数据成为维持几乎所有业务运营以获取洞察力和业务成果的先决条件,数据中心正处于这种数字化转型的关键。

Cassie ·  2021-02-21 10:14:59
IBM拟出售Watson Health后,AI医疗还能不能碰

医疗服务仍然是一块商业上尚未被完全发掘的市场,看病难/看病贵、医疗资源紧缺、医疗资源不平均等痛点问题长期存在,对应的市场空间理应是巨大的。而Watson Health作为IBM曾寄予厚望的业务方向,为何要在此时萌生退意?它的故事给业界带来哪些启发?眼下的AI医疗市场,究竟是一副什么样的局面呢?

物联传媒 ·  2021-02-21 08:41:16
抛弃归一化,深度学习模型准确率却达到了前所未有的水平

我们知道,在传递给机器学习模型的数据中,我们需要对数据进行归一化(normalization)处理。

机器之心 ·  2021-02-20 21:09:12
华人博士生首次尝试用两个Transformer构建一个GAN

最近,CV 研究者对 transformer 产生了极大的兴趣并取得了不少突破。这表明,transformer 有可能成为计算机视觉任务(如分类、检测和分割)的强大通用模型。

Yifan Jiang ·  2021-02-20 21:04:53
无监督训练用堆叠自编码器是否落伍?ML博士对比了8个自编码器

柏林工业大学深度学习方向博士生 Tilman Krokotsch 在多项任务中对比了 8 种自编码器的性能。

Tilman Krokotsch ·  2021-02-20 20:57:16
Copyright©2005-2021 51CTO.COM 版权所有 未经许可 请勿转载