Python可视化,matplotlib最佳入门练习


Python可视化,matplotlib最佳入门练习文章插图
转发本文并私信我"python" , 即可获得Python资料以及各种心得(持续更新的)
前言Python 可视化库非常多 , 其中 matplotlib 是优缺点明显的一个库 , 优点是它非常灵活 , 缺点就是学习起来相对复杂 。
最近在整理 matplotlib 入门所需核心知识点 , 会顺带编写各种练习 , 其中主要关注如何获得快速自学 matplotlib 的思路 。
本文目标图表如下:
Python可视化,matplotlib最佳入门练习文章插图

  • 每年小麦产量柱状图
  • 使用不同颜色标记最小与最大值的柱子
  • 画出均值线
matplotlib 有2种风格的 api:
  1. MATLAB 风格 , 适合数据探索(图表没有过多细节要求 , 主要能反映数据情况即可)
  2. 面向对象风格 , 适合编写重复自动化的图表任务或封装各种图表功能
面向对象风格非常适合入门 , 因此我统一使用这种风格
本文所需要的库如下:
Python可视化,matplotlib最佳入门练习文章插图
基本套路本次使用 vega_datasets 的小麦数据:
Python可视化,matplotlib最佳入门练习文章插图
  • 其中 year 与 wheat 是我们需要的数据
类似在一张纸上画出多种图表 , 其中纸就是放置图表的容器 。 在 matplotlib 中 , 这个容器称为 Figure 。
因此 , 代码如下:
Python可视化,matplotlib最佳入门练习文章插图
  • 使用 plt.subplots() 能生成新的 figure 与 axes
"axes 是啥玩意?"
其中 axes 就是坐标系 , 可以把它看作是一个图表 。
subplots 默认参数下 , 只会生成1个图表 , 因此现在看起来就是"这张纸(Figure)被1个图表(axes)占满" 。
显然 , 我们需要在 axes 上添加图表各种细节 , 最重要的当然是数据:
Python可视化,matplotlib最佳入门练习文章插图
  • 行2:在 axes 中画柱状图(bar) , 第一个参数 x 轴使用 年份数据 , 第二个参数柱子高度使用 wheat 列数据
但是 , 图表看起来有问题:
Python可视化,matplotlib最佳入门练习文章插图
  • 因为 df.year 是数值 , 图表按照连续数字定位 x 轴上的位置
修改数据源的类型:
Python可视化,matplotlib最佳入门练习文章插图
现在 , 柱子像点样子 , 但是 x 轴上乱七八糟:
Python可视化,matplotlib最佳入门练习文章插图
虽然此时图表还没有做大最终效果 , 但是基本形状已经出来 。
接下来基本是细节操作 。
初学者难以入门 matplotlib 其中一个原因是 , 他的方法很多 , 很多时候你甚至不知道如何在网上查找 。
接下来就是我要介绍的 , 如何利用 matplotlib 的帮助 , 推测出我们需要的方法
Python可视化,matplotlib最佳入门练习文章插图
各种细节的调整首先 , 我们希望调整 x 轴上刻度标签的显示角度 。
在 matplotlib 中对应这些概念:
  • 轴:axis
  • 刻度:tick
  • 标签:label
通常我们的操作都是基于 axes, 因为我们总是在操作某个图表 。


推荐阅读