↑↑↑关注后"星标"Datawhale

每日干货 & 每月组队学习,不错过

Datawhale开源

来自:Datawhale????数据可视化小组

开源初衷

Matplotlib可以说是python数据可视化最重要且常见的工具之一,几乎每个和数据打交道的人都不可避免,还有大量可视化工具是基于它的二次开发。

开源教程的设计初衷源于笔者最初用python做数据可视化时面临两大痛点,

  • 绘图时现用现查,用过即忘,效率极低

  • 只会复制粘贴,不知其所以然,面对复杂图表一筹莫展

如果屏幕前的你,也正在面临这两个痛点,那么学习本项目教程将会是一个不错的选择。

本项目重点希望在两个层面帮助读者构建matplotlib的知识体系(文末有开源教程地址):

  • 从图形,布局,文本,样式等多维度系统梳理matplotlib的绘图方法,构建对于绘图方法的整体理解

  • 从绘图API层级,接口等方面阐明matplotlib的设计理念,摆脱只会复制粘贴的尴尬处境

关于本项目的名称,Fantastic-Matplotlib,在笔者精读过官网文档之后,才愈发觉得精妙,仿佛看到了一角下的广袤冰山,被它强大的功能和精巧的设计惊艳到了,之前对于matplotlib的了解还是过于浅薄,因此想用fantastic来表示笔者的感慨,也希望能够通过这样一个开源教程带领读者领略的matplotlib的精彩之处。

开源教程

Fantastic-Matplotlib共有5个章节,笔者为每一个章节写了一句小诗作为回目名,因为在笔者看来,可视化不仅仅是一项技术,更是一件充满了艺术性的事情,在使用可视化库画图表时,常常想象自己在一块画布上自由地画水粉画。

第一回:Matplotlib初相识

第二回:艺术画笔见乾坤

第三回:布局格式定方圆

第四回:文字图例尽眉目

第五回:样式色彩秀芳华

这五个章节将从不同的维度(matplotlib概述,绘图元素,布局格式,文字图例,样式色彩)介绍如何进行可视化绘图。

第一回:Matplotlib初相识

第一回是引子,首先介绍了matplotlib可视化绘图包的特点,然后通过一个极简的可视化例子告诉读者如何用最简单的几行代码画出一幅可视化图表,最后简单介绍一幅可视化图表figure的组成和两种绘图接口。

两种绘图接口对初学者来说是一个难点,两种最常用的绘图接口特点如下:

  1. 显式创建figure和axes,在上面调用绘图方法,也被称为OO模式(object-oriented style);

  2. 依赖pyplot自动创建figure和axes,并绘图。

他们的区别在于OO模式更为底层,是一种面向对象的思路,从代码上更为复杂,但同时也更灵活。pyplot是面向过程的思路,matplotlib对其做了更高级的封装,使用时只用关注想要实现什么效果即可,而不用涉及到对象本身,代码上更为简洁,但在灵活性上不够OO模式自由。

通过第一章的学习,即使是零基础的读者也能够对matplotlib具有初步的了解,作为可视化的入门,学习如何画一个最简单的可视化例子。

第二回:艺术画笔见乾坤

第二回是这个数据可视化教程中最重要的一个章节,整个章节都围绕Artist对象展开。Artist对象在matplotlib宇宙中是一个极为重要的概念,实际上我们在做可视化时几乎接触到的所有对象元素都属于artist对象。

Artist对象可以分为两大类,基本元素primitives和容器对象container。基本元素指的是我们想在可视化画布上填上的标准元素,比如一条线,一个矩形,一段文字,一张外部图片,以上这些都属于基本元素的范畴。而容器对象指的是用来放置那些基本元素的对象,如Figure(完整的画布),Axes(子图),Axis(坐标轴)。按照官网的说法,我们在用matplotlib做可视化图表时,95%的时间都是在和Artist打交道,因此熟练掌握artist是学好数据可视化的关键。

本章首先介绍了matplotlib画图的三层API,其中前两层都属于底层API,通常我们打交道的都位于最上层的API中,进而引入了最上层API中artist的概念和分类,然后介绍matplotlib的标准使用流程,简单来说分为三步:

  1. 创建一个Figure实例;

  2. 使用Figure实例创建一个或者多个AxesSubplot实例;

  3. 使用Axes实例的辅助方法来创建primitive

在介绍完以上这些概念后,本章节详细讲解了常用基本元素和容器对象的使用方法。通过本章的学习,所有常见图表(折线图,柱状图,饼图等)的雏形都已经可以画出来了,并且你还可以根据实际需要自由组合不同基本元素搭建更为复杂的图表。

在本章中还针对artist元素,重点演示两种绘图接口的使用方法,对于常见的基本元素,matplotlib都提供了OO模式和pyplot模式的现成方法供使用者选择。

本质上我们绘制一幅可视化图表就是在容器对象(container)上填充和组合基本元素(primitive)的过程,像极了现实中绘画的过程。

第三回~第五回

第三~五章是对于一幅可视化图表的进一步修饰与加工,分别从布局格式,文字图例,样式色彩三方面对图表进行修饰。

第三章重点讲解了如何在一张大画布上划分均匀和非均匀的子图以进行多图展示,丰富图表内容。

第四章重点讲解了如何在图表上的不同功能区(figure,axes,tick,legend)上添加文字,修改文字样式和显示内容,精准的文字表述也是可视化图表的一个重要组成元素。

第五章重点讲解了如何在图表上设置图表的样式和色彩,从而让可视化图表更美观,看起来更像是一幅艺术作品。

最后还想说的是,对于学习完本教程的读者,若是仍然觉得学有余力不过瘾,强烈建议按需阅读官方文档,相信你一定会有所收获的。

核心贡献者:杨剑砺、杨煜、居凤霞、耿远昊、李运佳

Fantastic-Matplotlib开源地址

https://github.com/datawhalechina/fantastic-matplotlib

或点击阅读原文获取,欢迎star!

为开源贡献者

数据可视化教程来了!相关推荐

  1. python用tsne降维图像_python代码实现TSNE降维数据可视化教程

    TSNE降维jne免费资源网 降维就是用2维或3维表示多维数据(彼此具有相关性的多个特征数据)的技术,利用降维算法,可以显式地表现数据.(t-SNE)t分布随机邻域嵌入 是一种用于探索高维数据的非线性 ...

  2. 【Python】数据可视化教程来了!

    来自:Datawhale????数据可视化小组 开源初衷 Matplotlib可以说是python数据可视化最重要且常见的工具之一,几乎每个和数据打交道的人都不可避免,还有大量可视化工具是基于它的二次 ...

  3. 独家 | 使用Gephi设置动态图形动画——在社会网络图中动画化时间动态行为的数据可视化教程...

    作者:Haaya Naushan 翻译:车前子 校对:欧阳锦 本文约3300字,建议阅读7分钟 Gephi可视化Twitter网红的转发行为随时间的变化. 谈到分析社交网络,我之前的文章主要是关于自然 ...

  4. 超硬核的 Python 数据可视化教程!

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:机器学习算法那些事 Python实现可视化的三个步骤: ...

  5. [译] 数据可视化教程:基于Google Sheets 和 RStudio Shiny 建立实时仪表盘

    Thanks for Douglas Watson,the original English version is http://douglas-watson.github.io/post/gdocs ...

  6. seaborn 教程_使用Seaborn进行数据可视化教程

    seaborn 教程 "Seaborn makes the exploratory data analysis phase of your data science project beau ...

  7. python matplotlib数据可视化教程_matplotlib的Python数据可视化和探索——入门指南

    matplotlib--最受欢迎的Python库,用于数据可视化和探索 我喜欢在Python中使用matplotlib.这是我学会掌握的第一个可视化库,此后一直存在.matplotlib是最受欢迎的用 ...

  8. bokeh python_Python Bokeh数据可视化教程

    bokeh python Bokeh is an interactive Python data visualization library which targets modern web brow ...

  9. Python小白数据可视化教程:PyEcharts 精讲

    点击"简说Python",选择"置顶/星标公众号" 福利干货,第一时间送达! 本文授权转载自王的机器 禁二次转载 作者:王圣元 阅读文本大概需要 24 分钟 老 ...

最新文章

  1. 通过JDBC进行简单的增删改查(二)
  2. Pytorch网络结构可视化
  3. 如何配置Spring Boot Tomcat
  4. Payment Terms 付款条件
  5. 初学Java,这三个阶段你经历过吗?
  6. android 指示器平移动画,Android实现带指示器的自动轮播式ViewPager
  7. 祝贺JeecgBoot获评为2019年度最受欢迎中国开源软件
  8. 你的脑容量(每日一练)
  9. CCIE学习(4)——VLAN基础
  10. Android旅游APP类项目源代码
  11. MD5加密 MD5加盐
  12. Android Studio的适配器Adapter以及Adapterview的使用
  13. DirectX修复工具使用技巧之二——手动修复C++创建失败的文件
  14. 友盟分享 qq没有存储权限 分享失败
  15. app store connect
  16. 易简无人机巡检照片处理系统(一) —— 巡检作业流程
  17. Bulletproof零知识证明
  18. 莫古力最新服务器,《最终幻想14》将调整现有人口平均化策略
  19. 关于nova服务项目的使用方法
  20. 2021年危险化学品经营单位主要负责人考试题库及危险化学品经营单位主要负责人免费试题

热门文章

  1. Cygwin-添加到右键菜单脚本--一键安装、卸载
  2. LeetCode之461. Hamming Distance
  3. android 以不规则图片为边框切割另外图片
  4. ubuntu /boot 空间清理
  5. Java中getResourceAsStream的用法
  6. 错误:Error #2032解决方案
  7. 【怎样写代码】参数化类型 -- 泛型(八):泛型委托
  8. LSGO:祝大家新年快乐!
  9. OTSU 二值化的实现
  10. 【ACM】杭电OJ 1241(深度优先搜索小结)