当前位置: 首页 > news >正文

【python学习】第三方库之matplotlib的定义、功能、使用场景和代码示例(线图、直方图、散点图)

引言

Matplotlib 是一个 Python 的 2D 绘图库,它可以在各种平台上以各种硬拷贝格式和交互环境生成具有出版品质的图形。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图、直方图、功率谱、条形图、错误图、散点图
Matplotlib 是 John D. Hunter 编写的,其目的是为了替代MATLAB中的绘图功能,因为MATLAB是商业软件,而Matplotlib 是开源

文章目录

  • 引言
  • 一、安装`matplotlib`第三方库
  • 二、`Matplotlib`的定义
  • 三、功能
    • 3.1 绘制线图、散点图、条形图、直方图、饼图等
    • 3.2 支持多种硬拷贝格式和交互式环境
    • 3.3 可以轻松定制图形的各种属性,如颜色、线型、字体等
    • 3.4 支持动画制作
    • 3.5 与其他数据处理和科学计算库(如 NumPy、Pandas)紧密集成
  • 四、使用场景
    • 4.1 数据分析和可视化
    • 4.2 科学研究的图表绘制
    • 4.3 教育和演示
    • 4.4 制作高质量的图形用于出版
  • 五、代码示例
    • 5.1 以下是一个简单的 Matplotlib 代码示例,演示如何绘制一条线图
      • 5.1.1 代码
      • 5.1.2 代码解释
    • 5.2 画直方图
      • 5.2.1 代码
      • 5.2.2 代码解释
    • 5.3 画散点图
      • 5.3.1 代码
      • 5.3.2 代码解释
  • 六、总结(思维导图)

一、安装matplotlib第三方库

如下图所示操作:

在这里插入图片描述

二、Matplotlib的定义

Matplotlib是一个模块化的绘图库,它由几个不同的组件构成,其中最常用的模块是 pyplot,它提供了一个类似 MATLAB 的绘图接口

三、功能

3.1 绘制线图、散点图、条形图、直方图、饼图等

3.2 支持多种硬拷贝格式和交互式环境

3.3 可以轻松定制图形的各种属性,如颜色、线型、字体等

3.4 支持动画制作

3.5 与其他数据处理和科学计算库(如 NumPy、Pandas)紧密集成

四、使用场景

4.1 数据分析和可视化

4.2 科学研究的图表绘制

4.3 教育和演示

4.4 制作高质量的图形用于出版

五、代码示例

5.1 以下是一个简单的 Matplotlib 代码示例,演示如何绘制一条线图

5.1.1 代码

import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 100)  # 从0到10的100个点
y = np.sin(x)  # 计算每个点的正弦值
# 绘制图形
plt.figure(figsize=(10, 6))  # 设置图形大小
plt.plot(x, y, label='sin(x)', color='blue')  # 绘制线图,并指定标签和颜色
plt.title('Sine Function')  # 设置标题
plt.xlabel('x')  # 设置 x 轴标签
plt.ylabel('sin(x)')  # 设置 y 轴标签
plt.legend()  # 显示图例
plt.grid(True)  # 显示网格
# 显示图形
plt.show()

5.1.2 代码解释

  1. 使用了NumPy来生成数据点
  2. 使用 Matplotlib 的 pyplot 模块来绘制正弦函数的图形
  3. 调用不同的 plt 函数,设置图形的大小、标题、轴标签、图例以及是否显示网格
  4. plt.show()调用将图形显示在屏幕上

5.2 画直方图

5.2.1 代码

import matplotlib.pyplot as plt  # 导入matplotlib的pyplot模块,用于绘图# 创建一个新的图形,命名为'test',并设置分辨率为每英寸50点
plt.figure('test', dpi=50)  # 定义一个列表,包含要绘制直方图的数据
data = [1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 5, 6, 4]# 绘制data列表数据的直方图
# plt.hist()函数将自动计算每个数值的出现次数,并在图中显示
plt.hist(data)# 显示图形,如果没有这一行,图形将不会在屏幕上显示
plt.show()

5.2.2 代码解释

  1. import matplotlib.pyplot as plt: 这行代码是导入操作,它将Matplotlib库中的pyplot模块导入到当前脚本中,并将其重命名为 plt。这样,在后续代码中就可以使用 plt 来调用pyplot模块提供的绘图函数
  2. plt.figure(‘test’, dpi=50): 这行代码创建了一个新的图形实例,并将其命名为 ‘test’。dpi 参数设置图形的分辨率,这里的值为 50,表示每英寸有 50 个像素点。图形的分辨率越高,生成的图像越清晰,但文件大小也会更大
  3. data = [1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 5, 6, 4]: 这行代码定义了一个名为 data 的列表,其中包含了将要绘制直方图的数据。列表中的每个数字代表一个观测值
  4. plt.hist(data): 这行代码调用了pyplot模块的 hist 函数,它接受一个数据序列,并计算该序列中每个数值的出现次数,然后绘制一个直方图。直方图的 x 轴表示数据值,y 轴表示每个数据值的出现频次
  5. plt.show(): 这行代码是pyplot模块提供的函数,用于显示之前创建的所有图形。在调用此函数之前,虽然图形已经被创建和配置,但它们并不会在屏幕上显示。只有在调用 plt.show() 之后,图形才会被渲染并显示在屏幕上

5.3 画散点图

5.3.1 代码

import matplotlib.pyplot as plt  # 导入matplotlib的pyplot模块,用于绘图
import numpy as np  # 导入numpy库,用于数值计算# 创建一个新的图形,命名为'test',并设置分辨率为每英寸50点
plt.figure('test', dpi=50)  # 使用numpy的arange函数创建一个数组,包含从1到19的整数
x = np.arange(1, 20)# 设置y值与x值相等,这里y是x的简单复制
y = x# 使用plt.scatter绘制散点图,x和y是散点的坐标
# c='r'设置散点的颜色为红色,marker='o'设置散点的标记为圆形
plt.scatter(x, y, c='r', marker='o')# 显示图形,如果没有这一行,图形将不会在屏幕上显示
plt.show()

5.3.2 代码解释

  1. import matplotlib.pyplot as plt: 这行代码导入了matplotlib库中的pyplot模块,该模块提供了绘制2D图形的函数。通过导入这个模块,我们可以使用 plt 这个别名来调用pyplot的函数
  2. import numpy as np: 这行代码导入了numpy库,它是一个常用的科学计算库,这里我们用它来生成数值数组
  3. plt.figure(‘test’, dpi=50): 这行代码创建了一个新的图形实例,并将其命名为 ‘test’。dpi 参数设置了图形的分辨率,即每英寸的点数(dots per inch),这里设置为50
  4. x = np.arange(1, 20): 这行代码使用numpyarange函数创建了一个从1到19的数组,这个数组将作为散点图中点的 x 坐标。y = x: 这行代码将 y 设置为 x 的值,因此 y 也包含从1到19的整数,这个数组将作为散点图中点的 y 坐标
  5. plt.scatter(x, y, c=‘r’, marker=‘o’): 这行代码调用scatter函数绘制散点图,其中 x 和 y 是散点的 x 和 y 坐标,c=‘r’ 指定了散点的颜色为红色,marker=‘o’ 指定了散点的标记形状为圆形
  6. plt.show(): 这行代码是pyplot模块提供的函数,用于在屏幕上显示之前创建的所有图形。如果没有这行代码,图形将不会显示。在调用 plt.show() 之后,图形将被渲染并显示在屏幕上

六、总结(思维导图)

在这里插入图片描述

http://www.lryc.cn/news/401445.html

相关文章:

  • MySQL(3)表的操作
  • SQL GROUPING运算符详解
  • 在VS2017下FFmpeg+SDL编写最简单的视频播放器
  • LogViewer v2.x更新
  • detection_segmentation
  • 0基础学python-13:古希腊掌管时间的模块——datetime和time
  • 棒球特长生升学具有其独特的优势和劣势·棒球6号位
  • 搜维尔科技:Xsens DOT 可穿戴传感器介绍及示例应用演示
  • 数据分析案例-2024 年热门动漫数据集可视化分析
  • C#小结:未能找到类型或命名空间名“xxx”(是否缺少 using 指令或程序集引用?)
  • STM32智能无人机控制系统教程
  • 从 QWebEnginePage 打印文档
  • 初识Docker及管理Docker
  • 【学术会议征稿】2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024)
  • 在golang中Sprintf和Printf 的区别
  • 策略模式原理与C++实现
  • 打包一个自己的Vivado IP核
  • 《昇思25天学习打卡营第05天|qingyun201003》
  • 【Leetcode】二十一、前缀树 + 词典中最长的单词
  • 秋招Java后端开发冲刺——Mybatis使用总结
  • 怎么压缩视频文件?简单的压缩视频方法分享
  • 【Oracle】Oracle语法之递归查询
  • 【教程】Vue2中使用svg矢量图
  • 简约唯美的404HTML源码
  • PDF 转图片并插入到 EXCEL 再转PDF
  • jmeter之变量随机参数化以及解决多线程不会随机变化
  • 24/7/12总结
  • sentinel网关限流配置及使用
  • # 如何解决 App Store 审核中的 4.3(a) 问题:Guideline 4.3(a) - Design - Spam
  • 最长上升子序列(LIS)