目录

  • 前言
  • 学习路线
    • Task01:Matplotlib初相识(5.16、5.17)
    • Task02:艺术画笔见乾坤(5.18-5.22)
    • Task03:布局格式定方圆(5.23、5.24)
    • Task04:文字图例尽眉目(5.25-5.27)
    • Task05:样式色彩秀芳华(5.28、5.29)

前言

Datawhale第37期组队学习来了!这次选择的是Datawhale开源学习项目——“数据可视化(Matplotlib)”,学习周期为5.16-5.30,在此记录初次接触Matplotlib的小白学习历程。基于教程写的比较详细,这里的记录只作为补充。

学习路线

Task01:Matplotlib初相识(5.16、5.17)

matplotlib提供了两种最常用的绘图接口
1、OO模式(object-oriented style)
显式创建figure和axes,在上面调用绘图方法。
优点:清晰明了
缺点:代码编写更加复杂。(用面向对象编程接口的时候,需要创建画布、对象,需要理解每个绘制过程,才能完成相关的绘图工作。)
适合使用场景:较为复杂的画图场景

# step1 准备数据
x = np.linspace(0, 2, 100)
# step2 设置绘图样式
mpl.rc('lines', linewidth=2, linestyle='-.')
# step3 定义布局
fig, ax = plt.subplots()
# step4 绘制图像
ax.plot(x, x, label='linear')
ax.plot(x, x**2, label='quadratic')
ax.plot(x, x**3, label='cubic')
# step5 添加标签,文字和图例
ax.set_xlabel('x label')
ax.set_ylabel('y label')
ax.set_title("Simple Plot")
ax.legend() ;

2、pyplot模式
依赖pyplot,自动创建figure和axes,并绘图的方法。
优点:编写简单,默认的 Figure 和 Axes 等对象会自动创建支持图形绘制
缺点:在多对象情况下容易使对象混乱
适合使用场景:简单画图场景

# step1 准备数据
x = np.linspace(0, 2, 100)
# step2 设置绘图样式
mpl.rc('lines', linewidth=2, linestyle='-')
# step3 绘制图像
plt.plot(x, x, label='linear')
plt.plot(x, x**2, label='quadratic')
plt.plot(x, x**3, label='cubic')
# step4 添加标签,文字和图例
plt.xlabel("x label")
plt.ylabel("y label")
plt.title("Simple Plot")
plt.legend();

知识新增:
1、 在jupyter notebook中使用matplotlib时会发现,代码运行后自动打印出类似<matplotlib.lines.Line2D at 0x23155916dc0>这样一段话,这是因为matplotlib的绘图代码默认打印出最后一个对象。如果不想显示这句话,有以下三种方法:
①在代码块最后加一个分号;
②在代码块最后加一句plt.show()
③在绘图时将绘图对象显式赋值给一个变量,如将plt.plot([1, 2, 3, 4]) 改成line =plt.plot([1, 2, 3, 4])

Task02:艺术画笔见乾坤(5.18-5.22)

Task03:布局格式定方圆(5.23、5.24)

一、子图
①均匀排列的子图:
plt.subplots
subplots是基于OO模式的写法,显式创建一个或多个axes对象,然后在对应的子图对象上进行绘图操作:fig, axs = plt.subplots(2, 5, figsize=(10, 4), sharex=True, sharey=True)
plt.subplot
subplot是基于pyplot模式的写法,每次在指定位置新建一个子图,并且之后的绘图操作都会指向当前子图,本质上subplot也是Figure.add_subplot的一种封装:plt.subplot(2,2,1)
除了直角坐标系,通过projection创建极坐标系下的图表:plt.subplot(projection='polar')
②非均匀排列的子图
add_gridspec
利用 add_gridspec 可以指定相对宽度比例 width_ratios 和相对高度比例参数 height_ratios
二、补充
1、常用直线的画法为: axhline, axvline, axline (水平、垂直、任意方向)
ax.axhline(0.5,0.2,0.8)
ax.axvline(0.5,0.2,0.8)
ax.axline([0.3,0.3],[0.7,0.7]);
2、加灰色网格:使用 grid
ax.grid(True)
3、设置坐标轴的规度(指对数坐标等):使用 set_xscale
axs[j].set_yscale('log')

Task04:文字图例尽眉目(5.25-5.27)

一、Figure和Axes上的文本
子图上的文本(text)
子图的x,y轴标签(xlabel、ylabel)
子图和画布的标题(title、suptitle)
子图的注解(annotate)
字体的属性设置
二、Tick上的文本
简单模式
Tick Locators and Formatters刻度位置和刻度标签的设置
a) Tick Formatters
b) Tick Locators
matplotlib.dates 特殊的设置日期型刻度格式和位置
三、legend(图例)
OO模式
pyplot模式

Task05:样式色彩秀芳华(5.28、5.29)

一、样式
①修改预定义样式
默认模式:default
内置样式:‘Solarize_Light2’, ‘_classic_test_patch’, ‘bmh’, ‘classic’, ‘dark_background’, ‘fast’, ‘fivethirtyeight’, ‘ggplot’, ‘grayscale’, ‘seaborn’, ‘seaborn-bright’, ‘seaborn-colorblind’, ‘seaborn-dark’, ‘seaborn-dark-palette’, ‘seaborn-darkgrid’, ‘seaborn-deep’, ‘seaborn-muted’, ‘seaborn-notebook’, ‘seaborn-paper’, ‘seaborn-pastel’, ‘seaborn-poster’, ‘seaborn-talk’, ‘seaborn-ticks’, ‘seaborn-white’, ‘seaborn-whitegrid’, ‘tableau-colorblind10’

②自定义样式stylesheet
样式清单后缀名为mplstyle,内容:
axes.titlesize : 24
axes.labelsize : 20
lines.linewidth : 3
lines.markersize : 10
xtick.labelsize : 16
ytick.labelsize : 16

③rcparams
修改默认rc设置的方式改变样式(rc设置都保存在matplotlib.rcParams的变量)如:
线宽→mpl.rcParams[‘lines.linewidth’] = 2
线型→mpl.rcParams[‘lines.linestyle’] = ‘–’
线宽、线型→mpl.rc(‘lines’, linewidth=4, linestyle=‘-.’)

二、颜色
单色颜色
1、RGB或RGBA
颜色用[0,1]之间的浮点数表示,四个分量按顺序分别为(red, green, blue, alpha)
plt.plot([4,5,6],[1,2,3],color=(0.1, 0.2, 0.5, 0.5))
2、HEX RGB或RGBA
用十六进制颜色码表示,同样最后两位表示透明度
plt.plot([4,5,6],[1,2,3],color=‘#0f0f0f80’)
3、灰度色阶
当只有一个位于[0,1]的值时,表示灰度色阶
plt.plot([1,2,3],[4,5,6],color=‘0.5’)
4、单字符基本颜色
‘b’, ‘g’, ‘r’, ‘c’, ‘m’, ‘y’, ‘k’, 'w’对应blue, green, red, cyan, magenta, yellow, black, white
plt.plot([1,2,3],[4,5,6],color=‘m’)
5、颜色名称
plt.plot([1,2,3],[4,5,6],color=‘tan’)

colormap多色显示
五种colormap的字符串表示和颜色图的对应关系

顺序(Sequential)。通常使用单一色调,逐渐改变亮度和颜色渐渐增加,用于表示有顺序的信息

发散(Diverging)。改变两种不同颜色的亮度和饱和度,这些颜色在中间以不饱和的颜色相遇;当绘制的信息具有关键中间值(例如地形)或数据偏离零时,应使用此值。

循环(Cyclic)。改变两种不同颜色的亮度,在中间和开始/结束时以不饱和的颜色相遇。用于在端点处环绕的值,例如相角,风向或一天中的时间。

定性(Qualitative)。常是杂色,用来表示没有排序或关系的信息。

杂色(Miscellaneous)。一些在特定场景使用的杂色组合,如彩虹,海洋,地形

第37期Datawhale组队学习——数据可视化(Matplotlib)相关推荐

  1. 第8期Datawhale组队学习计划

    第8期Datawhale组队学习计划马上就要开始啦 这次共组织15个组队学习,涵盖了AI领域从理论知识到动手实践的内容 按照下面给出的最完备学习路线分类,难度系数分为低.中.高三档,可以按照需要参加 ...

  2. 第7期 Datawhale 组队学习计划

    马上就要开始啦 这次共组织15个组队学习 涵盖了AI领域从理论知识到动手实践的内容 按照下面给出的最完备学习路线分类 难度系数分为低.中.高三档 可以按照需要参加 - 学习路线 - 基础知识 01 统 ...

  3. 【组队学习】【28期】Datawhale组队学习内容介绍

    第28期 Datawhale 组队学习活动马上就要开始啦! 本次组队学习的内容为: 吃瓜教程--西瓜书+南瓜书 李宏毅机器学习 动手学数据分析 集成学习 SQL编程语言 R语言数据科学 基于Pytho ...

  4. 【组队学习】【29期】Datawhale组队学习内容介绍

    第29期 Datawhale 组队学习活动马上就要开始啦! 本次组队学习的内容为: 编程实践(数据可视化) 计算机视觉 自然语言处理之情感分析 吃瓜教程--西瓜书+南瓜书 李宏毅机器学习(含深度学习) ...

  5. 【组队学习】【25期】Datawhale组队学习内容介绍

    第25期 Datawhale 组队学习活动马上就要开始啦! 本次组队学习的内容为: web开发入门教程 数据挖掘实战(异常检测) 集成学习(下) 大家可以根据我们的开源内容进行自学,也可以加入我们的组 ...

  6. 【组队学习】【24期】Datawhale组队学习内容介绍

    第24期 Datawhale 组队学习活动马上就要开始啦! 本次组队学习的内容为: 零基础入门语音识别(食物声音识别) Docker教程 数据挖掘实践(智慧海洋) 集成学习(中) 河北邀请赛(二手车价 ...

  7. 大数据处理技术导论(1) | Datawhale组队学习46期

    文章目录 前言 1. 大数据概述 1.1 数据量大 Volume 1.2 数据种类多 Variety 1.3 处理速度快 Velocity 1.4 价值密度低 Value 2. hadoop 2.1 ...

  8. Datawhale组队学习-金融时序数据挖掘实践-Task01数据探索与分析

    Datawhale组队学习-金融时序数据挖掘实践-Task01数据探索与分析   在二手车交易价格预测之后,本菜鸟又加入了金融时序数据挖掘实践的学习.两个项目都是结构化数据,都着重于对数据本身的探索. ...

  9. Datawhale组队学习周报(第047周)

    本周报总结了从 2021年01月03日至2022年01月09日,Datawhale组队学习的运行情况,我们一直秉承"与学习者一起成长的理念",希望这个活动能够让更多的学习者受益. ...

最新文章

  1. 傻傻分不清的javascript运行机制
  2. 【二级java】软件工程基础
  3. 关于:项“ConnectionString”已添加
  4. python现在好找工作吗-学完Python好找工作吗?为什么有人学完找不到工作?
  5. php xml 增删改查,PHP实现对xml进行简单的增删改查(CRUD)操作示例
  6. 周董新歌搞崩QQ,透过20W评论,看看歌迷在说啥
  7. 小鹤双拼记忆口诀_选择双拼之自然码
  8. Word2Vec学习笔记(五)——Negative Sampling 模型(续)
  9. 【kafka】kafka KeeperErrorCode = ConnectionLoss for /config/topics
  10. pass样本量_基于PASS两样本均数比较的样本量计算
  11. php语言的cmpp协议应用
  12. html+css+气泡,纯CSS气泡框实现方法探究
  13. 彻底搞懂虚拟地址翻译为物理地址的过程
  14. 柴静十年看见了什么——一个央视记者的心灵史
  15. hdu-4747(线段树)
  16. 【Unity】如何优雅地实现任何线性效果?
  17. Fabric 超级账本学习【1】Fabcar网络调用Fabric-Java-SDK进行简单开发 FabCar
  18. CF1658F 题解
  19. 剑指 Offer 05. 替换空格
  20. Hadoop势微,云原生上位——传统大数据平台的云原生化改造

热门文章

  1. php ci框架目录结构,codeigniter框架目录结构、运行流程
  2. 有限元力学仿真中常见工程材料的典型属性
  3. 高仿网易云音乐UI的微信小程序源码
  4. ASP.NET美容店管理系统 程序+文档
  5. 思享工具箱,各种工具汇总
  6. 2023年厦门大学新闻与传播考研上岸前辈备考经验指导
  7. 小小的心愿,大大的努力
  8. 拓动态丨数字技术赋能“三农”领域,助力智慧农业全面发展
  9. matlab读取hdf和hdf5格式文件
  10. lgg7深度详细参数_探讨CAPP与PDM的深度集成