【深度学习】 Python 和 NumPy 系列教程(十三):Matplotlib详解:1、2d绘图(上):折线图、散点图、柱状图、直方图、饼图

2023-11-19

目录

 一、前言

二、实验环境

三、Matplotlib详解

0、绘图风格

1、2d绘图类型

0. 设置中文字体

1. 折线图(Line Plot)

2. 散点图(Scatter Plot)

3. 柱状图(Bar Plot)

4. 直方图(Histogram)

5. 饼图(Pie Chart)


 一、前言

        Python是一种高级编程语言,由Guido van Rossum于1991年创建。它以简洁、易读的语法而闻名,并且具有强大的功能和广泛的应用领域。Python具有丰富的标准库和第三方库,可以用于开发各种类型的应用程序,包括Web开发、数据分析、人工智能、科学计算、自动化脚本等。

        Python本身是一种伟大的通用编程语言,在一些流行的库(numpy,scipy,matplotlib)的帮助下,成为了科学计算的强大环境。本系列将介绍Python编程语言和使用Python进行科学计算的方法,主要包含以下内容:

  • Python:基本数据类型、容器(列表、元组、集合、字典)、函数、类
  • Numpy:数组创建、数组操作、数组数学、广播
  • Matplotlib:2d绘图、3d绘图、图表自定义、多子图和布局
  • IPython:创建笔记本、典型工作流程

二、实验环境

matplotlib 3.5.3
numpy 1.21.6
python 3.7.16
  • 运行下述命令检查Python版本
 python --version 
  • 运行下述代码检查Python、NumPy、Matplotlib版本
import sys
import numpy as np
import matplotlib

print("Python 版本:", sys.version)
print("NumPy 版本:", np.__version__)
print("matplotlib 版本:", matplotlib.__version__)

三、Matplotlib详解

        Matplotlib是一个用于创建数据可视化的Python库。它提供了广泛的绘图选项,能够生成各种类型的图表、图形和可视化效果。下面是Matplotlib的一些主要功能:

  1. 绘图风格和类型:Matplotlib支持各种绘图风格和类型,包括线图、散点图、柱状图、饼图、等高线图、3D图等,可以根据需要选择适合的图表类型来展示和分析数据。

  2. 数据可视化:Matplotlib使得将数据转化为可视化表示变得简单,可以使用Matplotlib绘制图表来展示数据的分布、趋势、关系等,这有助于更好地理解数据和发现潜在的模式和关联。

  3. 图表自定义:Matplotlib提供了丰富的图表自定义选项,可以调整图表的标题、标签、坐标轴、线条样式、颜色等。这使得您能够创建符合特定需求和品味的高质量图表。

  4. 多子图和布局:Matplotlib允许您在单个图像中创建多个子图,以便同时展示多个相关的图表或数据视图。您可以自定义子图的布局和排列,以满足特定的展示需求。

  5. 导出图像:Matplotlib支持将图像导出为多种格式,包括PNG、JPEG、PDF、SVG等。这使得您可以方便地将生成的图表保存为文件,或嵌入到文档、报告和演示文稿中。

        无论是进行科学研究、数据分析、报告撰写还是可视化展示,Matplotlib都是一个强大而灵活的工具。它广泛应用于各个领域,如数据科学、机器学习、金融分析、工程可视化等。

1、2d绘图类型

0. 设置中文字体

import matplotlib

matplotlib.rcParams['font.family'] = 'Microsoft YaHei'  # 设置为微软雅黑字体
matplotlib.rcParams['font.sans-serif'] = ['SimHei']     # 设置中文字体为黑体

        若不进行该设置,会报错字体缺失

1. 折线图(Line Plot)

        用于显示连续数据的趋势和变化

import matplotlib.pyplot as plt


x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

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

# 添加标题和标签
plt.title("折线图示例")
plt.xlabel("X轴")
plt.ylabel("Y轴")

# 显示图形
plt.show()

2. 散点图(Scatter Plot)

             用于显示两个变量之间的关系和分布

import matplotlib.pyplot as plt


x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# 绘制散点图
plt.scatter(x, y)

# 添加标题和标签
plt.title("散点图示例")
plt.xlabel("X轴")
plt.ylabel("Y轴")

# 显示图形
plt.show()

   

3. 柱状图(Bar Plot)

        用于比较不同类别的数据

import matplotlib.pyplot as plt


x = ['A', 'B', 'C', 'D', 'E']
y = [10, 15, 7, 12, 9]

# 绘制柱状图
plt.bar(x, y)

# 添加标题和标签
plt.title("柱状图示例")
plt.xlabel("X轴")
plt.ylabel("Y轴")

# 显示图形
plt.show()

4. 直方图(Histogram)

        用于显示数据的分布情况

import matplotlib.pyplot as plt


data = [1, 1, 2, 3, 3, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9]

# 绘制直方图
plt.hist(data)

# 添加标题和标签
plt.title("直方图示例")
plt.xlabel("数值")
plt.ylabel("频数")

# 显示图形
plt.show()

5. 饼图(Pie Chart)

        用于显示数据的相对比例

import matplotlib.pyplot as plt


labels = ['A', 'B', 'C', 'D', 'E']
sizes = [15, 30, 25, 10, 20]

# 绘制饼图
plt.pie(sizes, labels=labels, autopct='%1.1f%%')

# 添加标题
plt.title("饼图示例")

# 显示图形
plt.show()

        其中,autopct参数用于显示每个扇区的百分比值

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【深度学习】 Python 和 NumPy 系列教程(十三):Matplotlib详解:1、2d绘图(上):折线图、散点图、柱状图、直方图、饼图 的相关文章

  • 无法在 python 中导入名称 GoogleMaps

    我使用下面的代码来获取地址的纬度和经度 from googlemaps import GoogleMaps gmaps GoogleMaps api key address Constitution Ave NW 10th St NW Wa
  • Spark问题中读取大文件 - python

    我已经使用 python 在本地安装了 Spark 并在运行以下代码时 data sc textFile C Users xxxx Desktop train csv data first 我收到以下错误 Py4JJavaError Tra
  • 在 pandas 数据框中按列应用 Seaborn 热图

    我试图在枢轴熊猫数据帧上使用seaborn的热图 就像在超链接中一样有效 df pd DataFrame np random randint 1 100 size 3 2 df columns A B df sns heatmap df a
  • 如何使用Python在没有窗口的情况下在屏幕上显示文本

    问题 我需要在没有窗口的情况下直接将文本写入屏幕 文本需要显示在所有其他窗口和全屏应用程序之上 并且不应以任何方式单击或交互 Example The text doesn t need to have a transparent backg
  • Scrapy 未通过请求回调从项目中的已抓取链接返回附加信息

    基本上 下面的代码会抓取表格的前 5 项 其中一个字段是另一个 href 单击该 href 会提供更多信息 我想收集这些信息并将其添加到原始项目中 所以parse应该将半填充的项目传递给parse next page然后刮掉下一位并返回完成
  • 如何使用 tweepy 仅提取主题标签中的文本?

    我想为我的情感分析项目提取主题标签 但是我得到了一个字典列表 其中包含所有主题标签及其在推文中的索引 我只想要文字 我的代码 data tweepy Cursor api search q since a i until b i items
  • Flask-Mail - 基于 Flask-Cookiecutter 异步发送电子邮件

    我的烧瓶项目基于烧瓶饼干切割机 https github com sloria cookiecutter flask我需要异步发送电子邮件 发送电子邮件的功能由以下配置米格尔的教程 https blog miguelgrinberg com
  • 如何从分组数据创建直方图

    我正在尝试根据 pandas 中的分组数据创建直方图 到目前为止 我已经能够创建标准线图 但我不知道如何做同样的事情来获取直方图 条形图 我想获得泰坦尼克号事故中幸存者和未幸存者的 2 个年龄直方图 看看年龄分布是否存在差异 来源数据 ht
  • python 没有名为serial的模块

    我的 python 程序有问题 我编写了程序来将数据 温度 从 arduino 获取到我的树莓派 sqlite 数据库 但它在第 4 行 导入串行 处给了我一个错误 提示 ImportError 没有名为串行的模块 我使用 python3
  • 通过Python通过蓝牙发送消息或数据

    如何通过 python 通过蓝牙发送消息 而无需输入数字等密钥身份验证 我用过 pybluez 但我收到了这个错误 File send line 12 in
  • Keras ImageDataGenerator 相当于 csv 文件

    我在文件夹中排序了一堆数据 如下图所示 我需要构建一个 DataIterator 以便将数据放入神经网络模型中 当数据是图像时 我找到了很多例子来解决这个问题 使用 Keras 类图像数据生成器及其方法流自目录 但当数据是 csv 结构时则
  • 仅获取图像中的外部轮廓

    我有这段代码 可以在图像中绘制轮廓 但我只需要外部轮廓 import cv2 import numpy as np camino C Users Usuario Documents Deteccion de Objetos 123 jpg
  • 使用 Scipy/Numpy 在浊点的二维插值中仅获取“有效”点

    我有一个通过人的背部摄影测量获得的浊点 我正在尝试对其进行插值以获得规则网格 为此我正在使用scipy interpolate到目前为止取得了良好的成果 问题是 我正在使用的函数 scipy interpolate griddata 使用平
  • 为什么你可以在字符串上重载 __radd__ 而不是 __rmod__ ?

    在Python中 您可以覆盖右 和左 加法运算符
  • 为什么计算大整数阶乘的“分而治之”方法如此快? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 MinGW 链接到 Python

    我不想创建一个嵌入Python解释器的跨平台程序 并用MinGW编译它 但是 Python 二进制发行版没有提供 MinGW 链接的库 仅python32 lib对于 Visual C 并且 Python 源包不提供使用 MinGW 编译的
  • 如何在 Python 中将 .docx 转换为 .txt

    我想将大量 MS Word 文件转换为纯文本格式 我不知道如何在 Python 中做到这一点 我在网上找到了以下代码 我的路径是本地路径 所有文件名都类似于 cx xxx 即 c1 000 c1 001 c2 000 c2 001 等 fr
  • 将文本文件转换为 plink PED 和 MAP 格式

    我有以下数据 其中的一小部分 名为 short2 pre snp tumor txt rs987435 C G 1 1 1 0 2 rs345783 C G 0 0 1 0 0 rs955894 G T 1 1 2 2 1 rs608879
  • 从多个大型 NetCDF 文件中提取数据的快速/高效方法

    我只需要从全局网格中提取特定节点集的数据 由纬度 经度坐标 按 5000 10000 的顺序 给出 这些数据是水力参数的时间序列 例如波高 全局数据集很大 因此分为许多 NetCDF 文件 每个 NetCDF 文件大小约为 5GB 包含整个
  • Django:单击按钮加载另一个模板

    我已经在 django 项目上工作了几个星期 只是玩玩以便掌握它的窍门 我有点困惑 我现在有一个名为 home html 的模板 我想知道是否可以将另一个名为 profile html 的模板设置为 home html 模板上的链接 我有一

随机推荐

  • JNI字段描述符“([Ljava/lang/String;)V”

    Ljava lang String V 它是一种对函数返回值和参数的编码 这种编码叫做JNI字段描述符 JavaNative Interface FieldDescriptors 一个数组int 就需要表示为这样 I 如果多个数组doubl
  • 项目实训:bd搜索爬虫

    百度爬虫 1 requests库使用 2 lxml库使用 3 pandas库使用 4 数据清洗 5 数据分析可视化 结构分析 接下来的对目标爬虫的结构进行分析 爬虫思路 分析数据来源在哪 如何模拟的像真实用户 如果提取数据 如何保存数据 文
  • UE4 射线检测案例(C++)

    UE4 射线检测 C 开发场景 玩家 C 开发的 武器 C 射线检测函数 蓝图 C 效果 制作流程 添加开火按键映射 新建一个继承ACharacter的C 用蓝图继承刚刚新建的C 然后设置好游戏模式 我 这是是 用了一个枚举 其实你直接调用
  • Linux-ubuntu系统查看显卡型号、显卡信息详解、显卡天梯图

    本文将介绍如下内容 如何在ubuntu系统中查看显卡型号 其他文章大多只介绍了命令而未介绍如何对应显卡型号 在ubuntu系统中显卡详细信息 以及所代表的含义 显卡天梯图 2019年7月 一 查看显卡型号 1 查看显卡型号命令 lspci
  • 自定义全局异常

    1 自定义响应结果码 接口 public interface ResultCode 操作是否成功 true为成功 false操作失败 boolean success 操作代码 int code 提示信息 String message 2 自
  • Xmind for Mac 绿色破解(包含激活序列码)

    下载地址 主程序 https www xmind cn xmind downloads xmind 8 update8 macosx dmg 破解补丁 https carrot ctfile com fs 11269771 30027815
  • Centos7 配置SSH

    一 何为SSH 1 SSH的功能 SSH 为 Secure Shell 的缩写 由 IETF 的网络小组 Network Working Group 所制定 SSH 为建立在应用层基础上的安全协议 SSH 是较可靠 专为远程登录会话和其他网
  • CSDN高校俱乐部名师百校行——河北站

    CSDN高校俱乐部启动IT名师百校行活动 一方面通过线下讲座把CSDN骨灰级导师的宝贵经验分享给高校学生 促进CSDN和高校的沟通互动 一方面将高校俱乐部的学习小组带到高校 公益培养IT技术爱好者为企业所需人才 结合技术直播 组织线下讲座
  • 商标45类分类表明细表_注册商标没选择好分类,注册下来也白搭

    商标是区别商品或服务来源的一种标志 每一个注册商标都是指定用于某一商品或服务上的 正是为了商标检索 审查 管理工作的需要 把某些具有共同属性的商品组合到一起 编为一个类 将所有商品及服务共划分为45个类别 形成了商标分类表 商标注册用商品和
  • 输入一串字符,输出其最长单词的长度(不要求输出最长单词)

    无非就是要解决两个问题 1 如何判断一个单词的开始 lastchar 2 统计该单词的长度 sum 3 记录最大单词长度 max 以下是不用数组的做法 include
  • 系统架构设计师 8:系统质量属性与架构评估

    软件系统属性包括功能属性和质量属性 软件架构重点关注的是质量属性 为了精确 定量地表达系统的质量属性 通常会采用质量属性场景的方式进行描述 在确定软件系统架构 精确描述质量属性场景后 就需要对系统架构进行评估 软件系统架构评估是在对架构分析
  • 乘势而起,走进2019年风口“边缘计算”

    戳蓝字 CSDN云计算 关注我们哦 作者 pasca 原创 蛋蛋团 ID dandan tuan 5G火了 也带火了边缘计算 2019年3月 一篇 5G风口扩散 超清视频边缘计算概念崛起 的文章意外走红 直接导致此前不温不火的 百度搜索暴增
  • 微服务+Jenkins 简单的linux自动部署脚本

    No 1 启停脚本 bin bash 加载配置 避免获取不到java home source etc profile SERVICE HOME 项目路径 SERVICE NAME 服务名称 cd SERVICE HOME SERVICE N
  • easyclick与autojs的对比和常用代码(完善中)

    作成了文档 链接 https easydoc xyz s 10157628 加入我们的QQ群553908361 和各作者同群交流 该教程优先发布于收费脚本v群 部分代码收集于网络 现在已经不知道作者谁了 如有侵权 请私信我进行删除 启动ap
  • Redis 缓存穿透和雪崩的概念介绍

    Redis 缓存穿透和雪崩的概念 缓存穿透 缓存穿透的概念其实很简单 我们经常使用 Redis 作为缓存数据库 如果用户相插叙一个数据 但是发现 Redis 没用这条数据 也就是没有命中 Redis 数据库中的数据 于是就到数据库中查询 上
  • 基于weblibvirt管理多个kvm主机

    1 问题a virt manager管理kvm需要接入显示屏或搭建vnc或开启xming转发 问题b virt manager纳管其他kvm后 重启kvm后需要重新纳管 且无法便捷的创建存储池 问题c 基于centos8 stream系统环
  • html图片加白边阴影,CSS3毛玻璃效果(blur)有白边问题的解决方法

    做一个登录页 全屏背景图毛玻璃效果 实现方法如下 var w window innerWidth document documentElement clientWidth document body clientWidth var h wi
  • nginx根据header分流

    OS Centos 7 6 version nginx 1 18 0 nginx根据header分流 不同header头分发到不同节点 同一域名路径根据不同header头分发到不同节点 主要配置 通过 http version 判断版本 转
  • Android 拍摄照片后返回缩略图的两种方法详解

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 前言 如果简单地拍照片并非您应用的主要目标 那么您可能希望从相机应用中获取图片并对该图片执行一些操作 一 这就是第一种方法 比较简单 不
  • 【深度学习】 Python 和 NumPy 系列教程(十三):Matplotlib详解:1、2d绘图(上):折线图、散点图、柱状图、直方图、饼图

    目录 一 前言 二 实验环境 三 Matplotlib详解 0 绘图风格 1 2d绘图类型 0 设置中文字体 1 折线图 Line Plot 2 散点图 Scatter Plot 3 柱状图 Bar Plot 4 直方图 Histogram