• 8-原谅我这一生不羁放纵爱作图之matplotlib(上)


    回想群主刚进希捷时,收到一封Advanced 6 sigma training的报名通知邮件,虽然更好的选择是从零学起,但选日不如撞日,于是很冲动地报名参加了,从此走上了数据分析的不归路!6 sigma黑带毕业后,老板把我当成部门吉祥物供着,一旦有数据分析的任务都要找我。在迎合老板的过程中,群主奇迹般地从一个小白蜕变为一个作图达人!从前车马慢,作图只会柱状图,后来CDF,等高线图,散点矩阵,矩形树图,气泡图等都尝试了一遍。直到有一天,历经繁华的群主不小心点开perceptual edge这个网站,作者把一些花哨唬人的作图方式都痛批了一遍,得出结论:这些3D炫彩的凹造型方式其实不如柱状图!看到这句话,群主的脑中响起了《道德经》的BGM:“大智若愚,大巧若拙。大音希声,大象无形。”整个世界都安静了,山高月小,水落石出。群主决定回归自然。不久遇到了matplotlib(python最著名的绘图库),发现这货竟然能徒手写代码画图,群主的断舍离情结得到了满足,于是连夜卸载了JMP, Tableau等肤浅的作图软件,踏上了一条少有人走的艰辛而美妙的岔路……

    本周笔记中出现的数据文件可从百度网盘下载:

    http://pan.baidu.com/s/1o82pZ2i

    一、数据可视化原则

    1. 什么是数据可视化

    数据可视化就是将数据合理地映射成图形元素的过程。

    2. 数据可视化的目的

    人类是视觉动物,其视觉神经系统有强大的模式识别和分析能力,数据可视化是启动这套系统的途径。

    3. 数据可视化的原则

    明确可视化的具体目标

    • 可视化的类型

      • 探索型:做之前并不知道数据中有哪些规律。可视化是探索的工具。

      • 解释型:知道规律,目的是方便传递(以让其他人更容易理解数据中的规律)。要考虑受众。

    • 要传送什么样的信息

      • 哪些信息最重要

      • 使用什么数据

    • 考虑受众群体

      • 阅读者的角色和知识背景:例如高层领导者就可能更需要偏宏观的信息。

      • 需要何类信息?

      • 细节程度?

    • 选择合适的视觉编码方法(如下图形元素)

      • 位置

      • 长度

      • 尺寸

      • 角度

      • 颜色

      • 形状……

    二、开始作图

    基本概念

    • figure:画布

    • axes:坐标轴,或者理解成所画的图形

    • 一张画布(figure)可以有很多图(axes)

    其他

    • label:坐标轴的标注

    • ticks:刻度

    • legend:图例

      • loc = 0:自动寻找最好的位置

      • ncol = 3:分三列

      • fontsize

      • frameon = True :边框

    画布:

    三、图的类型

    基本图形类型

    • 线图line

    • 条形图bar (表现离散数据)

    • 饼图pie

    • 直方图 histogram(画连续数据)

    • 散点图 scatter (两个因素的相关性)


    坐标轴属性:

    注意区别:

    fig, ax = plt.subplots() 画布里只有一个axes。 fig 后跟 ax

    fig, axes = plt.subplots(1, 4, figsize=(16, 3)) 画布里有多个axes。 fig 后跟 axes

    学完这些,相信大家和我一样脑海中滚动着《杀手leon》的著名台词:

    Is life always this hard, or is it just when you are a kid? 

    Always like this. 

    配图:笑着活下去.jpg

    似乎画图都已经这么难了,那后面的机器学习算法呢?不用担心,群主以24K纯种理科生的经验保证,matplotlib画图这节是最难的,因为死记硬背的细节太多了!只要跨过这个坎,前面一片坦途ヾ(o◕∀◕)ノ加油,还有一次matplotlib的学习笔记,下周不见不散!

  • 相关阅读:
    Qt Creator pro 文件 导入vs2013碰到的问题
    扫描助手技术支持
    测试下载
    pod安装(可安装任意版本)和卸载 (转载做记录自留备用)
    阿拉德下载
    Mac 上传项目到码云
    iOS中Realm数据库的基本用法
    集成微信支付流程整理
    tableViewCell左划显示多个按钮(系统原生)
    快速排序法从小到大排序
  • 原文地址:https://www.cnblogs.com/turingbrain/p/6979978.html
Copyright © 2020-2023  润新知