Matplotlib

Matplotlib

  • [1 什么是Matplotlib](#1 什么是Matplotlib)
  • [2 为什么要学习Matplotlib](#2 为什么要学习Matplotlib)
  • [3 实现一个简单的Matplotlib画图](#3 实现一个简单的Matplotlib画图)
    • [3.1 matplotlib.pyplot模块](#3.1 matplotlib.pyplot模块)
    • [3.2 图形绘制的流程](#3.2 图形绘制的流程)
    • [3.3 示例](#3.3 示例)
  • [4 认识Matplotlib图像结构(了解)](#4 认识Matplotlib图像结构(了解))
  • [5 折线图(plot)与基础绘图功能](#5 折线图(plot)与基础绘图功能)
    • [5.1 图像保存](#5.1 图像保存)
    • [5.2 案例:显示温度变化](#5.2 案例:显示温度变化)
      • [5.2.1 准备数据并画出初试折线图](#5.2.1 准备数据并画出初试折线图)
      • [5.2.2 添加自定义x,y刻度](#5.2.2 添加自定义x,y刻度)
      • [5.2.3 添加网格信息](#5.2.3 添加网格信息)
      • [5.2.4 添加描述信息](#5.2.4 添加描述信息)
      • [5.2.5 多条折线绘制](#5.2.5 多条折线绘制)
      • [5.2.6 显示图例](#5.2.6 显示图例)
    • [5.3 最终效果](#5.3 最终效果)

1 什么是Matplotlib

  • 专门用于开发2D图表(包括3D图表)的工具
  • 以渐进、交互式方式实现数据可视化

2 为什么要学习Matplotlib

可视化是在整个数据挖掘的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法。

  • 能将数据进行可视化,更直观的呈现
  • 使数据更加客观、更具说服力

例如下面两个图为数字展示和图形展示:


3 实现一个简单的Matplotlib画图

3.1 matplotlib.pyplot模块

matplotlib.pytplot包含了一系列类似于matlab的画图函数。

python 复制代码
import matplotlib.pyplot as plt

3.2 图形绘制的流程

  1. 创建画布 --plt.figure()

    plt.figure(figsize=(),dpi=())

    复制代码
     figsize:指定图的长宽
    
     dpi:图像的清晰度
    
     返回fig对象
  2. 绘制图像 --plt.plot(x,y)

    以折线图为例:

    复制代码
     x表示横坐标
    
     y表示纵坐标
  3. 显示图像 --plt.show()

3.3 示例

显示某城市一周天气

python 复制代码
import matplotlib.pyplot as plt

# 1.创建画布
plt.figure(figsize=(5, 5), dpi=100)

# 2.绘制折线图
plt.plot([1, 2, 3, 4, 5, 6 ,7], [17,17,18,15,11,11,13])

# 3.显示图像
plt.show()

4 认识Matplotlib图像结构(了解)


5 折线图(plot)与基础绘图功能

5.1 图像保存

  • plt.savefig("路径")

注意图像保存一定要位于图像显示之前。

5.2 案例:显示温度变化

为了更好地理解所有基础绘图功能,我们通过天气温度变化的绘图来融合所有的基础API使用。

需求:画出某城市11点到12点1小时内每分钟的温度变化折线图,温度范围在15度~18度。

效果:

5.2.1 准备数据并画出初试折线图

python 复制代码
import matplotlib.pyplot as plt
import random

# 画出温度变化图

# 0.准备x, y坐标的数据
x = range(60)
y_wuhan = [random.uniform(15, 18) for i in x]

# 1.创建画布
plt.figure(figsize=(12, 4), dpi=80)

# 2.绘制折线图
plt.plot(x, y_wuhan)

# 3.显示图像
plt.show()

5.2.2 添加自定义x,y刻度

  • plt.xticks(ticks=None, labels=None, **kwargs)

  • plt.yticks(ticks=None, labels=None, **kwargs)

    • ticks:x/y轴刻度位置的列表,若传入空列表,即不显示x/y轴

    • labels:放在指定刻度位置的标签文本。当ticks参数有输入值,该参数才能传入参数

    • **kwargs:文本属性用来控制标签文本的展示,例如字体大小、字体样式等

注意第一个参数必须是数字,否则需要进行值的替换

python 复制代码
# 增加以下两行代码

# 构造x轴刻度标签
x_ticks_label = ["11点{}分".format(i) for i in x]
# 构造y轴刻度
y_ticks = range(40)

# 修改x,y轴坐标的刻度显示
plt.xticks(x[::5], x_ticks_label[::5])
plt.yticks(y_ticks[::5])

5.2.3 添加网格信息

为了更加清楚的观察对应图形的值,我们可能需要用网格来帮助我们显示。

  • plt.grid( b , axis , color , linestyle , linewidth , alpha )
    • b:布尔值,是否显示网格。
    • axis:取值为"both"、"x"、"y",表示想绘制哪个方向的网格线
    • color:设置网格线的颜色
    • linestyle:设置网格线的风格,包括: '-' 、 '--'、'-.'、':' 、'None'、' '
    • linewidth:设置网格线的宽度
    • alpha:设置网格线透明度
python 复制代码
plt.grid(True,linestyle='--',alpha=0.5)

5.2.4 添加描述信息

添加x轴、y轴描述信息及标题

通过fontsize参数可以修改图像中字体的大小

python 复制代码
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("中午11点0分到12点之间的温度变化图示", fontsize=20)

5.2.5 多条折线绘制

需求:增加一个城市的温度变化信息

python 复制代码
# 增加北京的温度数据
y_beijing = [random.uniform(1, 3) for i in x]

# 使用多次plot可以画多个折线
plt.plot(x, y_beijing, color='r', linestyle='--')

# 显示图例
plt.legend()

5.2.6 显示图例

python 复制代码
# 绘制折线图
plt.plot(x, y_wuhan, label="武汉")
# 使用多次plot可以画多个折线
plt.plot(x, y_beijing, color='r', linestyle='--', label="北京")

# 显示图例
plt.legend()

5.3 最终效果

相关推荐
线条11 天前
Matplotlib 安装部署与版本兼容问题解决方案(pyCharm)
matplotlib
GG不是gg1 天前
NumPy-核心函数np.matmul()深入解析
numpy
HuashuiMu花水木1 天前
Matplotlib笔记4----------图像处理
图像处理·笔记·matplotlib
GG不是gg2 天前
NumPy-核心函数np.dot()深入理解
numpy
好开心啊没烦恼2 天前
Python 数据分析:numpy,抽提,整数数组索引与基本索引扩展(元组传参)。听故事学知识点怎么这么容易?
开发语言·人工智能·python·数据挖掘·数据分析·numpy·pandas
程序员阿超的博客3 天前
Python 数据分析与机器学习入门 (五):Matplotlib 数据可视化基础
python·信息可视化·数据分析·matplotlib·数据可视化·python教程·pyplot
小高求学之路14 天前
MinIO centos 7 离线(内网) 一键部署安装
python·centos·numpy
NLxxxxX14 天前
爬虫获取数据:selenium的应用
开发语言·爬虫·python·selenium·测试工具·numpy·pandas
音程15 天前
Matplotlib绘制矩阵图,plt.matshow/imshow 与 ax.pcolor(pcolormesh)方法的使用
matplotlib
搏博15 天前
基于Python、tkinter、sqlite3 和matplotlib的校园书店管理系统
python·信息可视化·sqlite·matplotlib