理想国matplotlib入门教程

48 篇文章 0 订阅
13 篇文章 0 订阅

简介

个人简介

  • 姓名:张大鹏
  • 性别:男
  • 生日:1993年8月29日
  • 经验:工作经验8年,IT技术培训经验3年
  • 爱好:学习
  • 座右铭:不积跬步无以至千里,不积小流无以成江海。
  • 优点:自律,稳重,热爱学习
  • 缺点:胖胖的

课程简介

  • 教大家怎么简单的使用python做数据分析并可视化

matplotlib简介

  • python数据分析必学的基础库
  • 能够轻松的绘制折线图,柱状图,散点图,饼图等常见可视化图表
  • 使用简单,numpy,pandas,matplotlib是python数据分析中最常见的工具组合
  • 一般用于将python数据进行可视化
  • 安装:pip install matplotlib

教学目标

  • 了解matplotlib是什么(基础)
  • 了解matplotlib的使用场景(基础)
  • 了解图表的常见组成(入门)
  • 了解matplotlib如何制作图表并展示(入门)
  • 了解怎么使用matplotlib展示各种辅助信息并解决中文乱码问题(入门)
  • 了解使用matplotlib最重要的步骤(重要)
  • 了解使用matplotlib的一般完整步骤(重要)
  • 了解怎么在一张图表中绘制多个图形(进阶)

环境准备

安装虚拟环境管理依赖

pip install virtualenv
# 备用
pip install virtualenv -i http://pypi.douban.com/simple/
pip install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple

创建虚拟环境:这里叫ai,是人工智能的意思,里面包含了一些常用的人工智能基础库,mataplotlib是基础库之一

virtualenv ai

激活虚拟环境

.\ai\Scripts\activate

安装matplotlib

pip install matplotlib

创建工作空间(文件夹)

mkdir matplotlib

使用vscode打开文件夹,即可开始编写代码

图表的常见组成部分

在这里插入图片描述

  • 标题
  • x轴标签
  • y轴标签
  • x轴刻度
  • y轴刻度
  • 图例
  • 网格

绘制图表最重要的步骤

最重要的步骤

  • 导入依赖
  • 准备数据(后期一般是通过数据分析技术处理后的数据)
  • 创建画布
  • 绘图
  • 展示

示例:北京气温折线图

# 导入依赖
import matplotlib.pyplot as plt
from random import randint

# 准备数据(后期一般是通过数据分析技术处理后的数据)
# 这里模拟北京11点到12点一小时内的气温,假设是随机从15-18摄氏度变化
y = [randint(15,18) for _ in range(60)]
x = range(60)

# 创建画布
# figsize 控制画布的大小
# dpi 控制画布的像素,也能够有控制画布大小的效果
plt.figure(figsize=(10, 6), dpi=100)

# 绘图
plt.plot(x, y)

# 展示
plt.show()

在这里插入图片描述

代码分析

import matplotlib.pyplot as plt
from random import randint
  • 导入依赖
  • plt是matplotlib用来绘制图像的一个对象
  • randint是用来生成随机数的一个对象
y = [randint(15,18) for _ in range(60)]
x = range(60)
  • 生成数据
  • y是60个15-18之间的随机数,这里采用列表生成式快速生成
  • x是从0-59的整数
plt.figure(figsize=(10, 6), dpi=100)
  • 创建画布
  • figsize=(10, 6):指定figure的宽和高,单位为英寸
  • dpi=100:指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80
plt.plot(x, y)
  • 绘制折线图
  • 这里分别传入x轴的标签数据和y轴的数值数据
plt.show()
  • 展示绘制的折线图

课堂实验:

  • 调整figsize的大小,分别为
    • (10,6)
    • (20,8)
    • (40,16)
    • (80,32)
  • 调整dpi的大小,分别为
    • 10
    • 20
    • 40
    • 80
    • 100
    • 200

绘制图表的一般完整步骤

  • 导入依赖
  • 准备数据
  • 解决中文乱码问题
  • 绘制画布
  • 绘制图像
  • 绘制标题
  • 绘制xy轴标签
  • 绘制xy轴刻度
  • 绘制网格
  • 绘制图例
  • 保存图片
  • 显示图片

示例:北京上海气温折线对比图

# 导入依赖
import matplotlib.pyplot as plt
from random import randint

# 准备数据
x = range(60) # 一个小时内的气温
y_beijing = [randint(15, 18) for _ in x] # 北京气温
y_shanghai = [randint(1, 3) for _ in x] # 上海气温

x_ticks = ['11点%02d分'%(i) for i in x] # x轴刻度
y_ticks = range(20) # y轴刻度

# 解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False

# 绘制画布
plt.figure(figsize=(10, 6), dpi=100)

# 绘制图像
plt.plot(x, y_beijing, label='北京气温')
plt.plot(x, y_shanghai, label='上海气温')

# 绘制标题
plt.title('北京上海气温折线对比图')

# 绘制xy轴标签
plt.xlabel("时间")
plt.ylabel("气温")

# 绘制xy轴刻度
plt.xticks(x[::10], x_ticks[::10])
plt.yticks(y_ticks)

# 绘制网格
plt.grid()

# 绘制图例
plt.legend()

# 保存图片
plt.savefig('./test.png')

# 显示图片
plt.show()

在这里插入图片描述

代码分析

x = range(60) # 一个小时内的气温
y_beijing = [randint(15, 18) for _ in x] # 北京气温
y_shanghai = [randint(1, 3) for _ in x] # 上海气温

x_ticks = ['11点%02d分'%(i) for i in x] # x轴刻度
y_ticks = range(20) # y轴刻度
  • 准备数据
  • x是从0-59的数字,表示一个小时内的分钟数
  • y_beijing表示一个小时内北京气温的随机值,是60个15-18的随机数
  • y_shanghai表示一个小时内上海气温的随机值,是60个1-3的随机数
  • x_ticks表示x轴的标签,是时间字符串数组
  • y_ticks表示y轴的标签,是0-19的整数序列
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
  • 解决中文乱码问题
  • windows上的固定写法,一般添加这两行都能解决乱码问题
  • Microsoft YaHei:表示微软雅黑字体,也可以替换为系统中的其他存在字体,一般不建议修改
plt.plot(x, y_beijing, label='北京气温')
plt.plot(x, y_shanghai, label='上海气温')
  • 绘制图像
  • 这里绘制了两条折线,分别表示北京的气温变化和上海的气温变化
  • 同时使用label添加了标签,后面的显示图例依赖于这里的设置
# 绘制标题
plt.title('北京上海气温折线对比图')

# 绘制xy轴标签
plt.xlabel("时间")
plt.ylabel("气温")

# 绘制xy轴刻度
plt.xticks(x[::10], x_ticks[::10])
plt.yticks(y_ticks)

# 绘制网格
plt.grid()

# 绘制图例
plt.legend()
  • 绘制标题,标签,刻度,网格,图例
plt.savefig('./test.png')
  • 保存图片
  • 查看代码所在文件夹,发现会多了一个test.png的图片

谢谢

  • 本次课程到此结束,感谢大家的聆听
  • 我的电话+微信:18010070052,大家对本次课程有什么问题,建议,想法可以随时联系我,单纯觉得我人不错,想要交个朋友,也是可以滴
  • 再次感谢,相遇是缘,感谢大家给我这次授课的机会,祝大家学习愉快,学业顺利,写代码永无bug
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python私教

创业不易,请打赏支持我一点吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值