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

【深度学习】 Python 和 NumPy 系列教程(十四):Matplotlib详解:1、2d绘图(下):箱线图、热力图、面积图、等高线图、极坐标图

目录

 一、前言

二、实验环境

三、Matplotlib详解

 1、2d绘图类型

0. 设置中文字体

1-5. 折线图、散点图、柱状图、直方图、饼图

6. 箱线图(Box Plot)

7. 热力图(Heatmap)

8. 面积图(Area Plot)

9. 等高线图(Contour Plot)

10. 极坐标图(Polar Plot)


 一、前言

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

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

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

二、实验环境

matplotlib3.5.3
numpy1.21.6
python3.7.16
  • 运行下述命令检查Python版本
 python --version 
  • 运行下述代码检查Python、NumPy、Matplotlib版本
import sys
import numpy as np
import matplotlibprint("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 matplotlibmatplotlib.rcParams['font.family'] = 'Microsoft YaHei'  # 设置为微软雅黑字体
matplotlib.rcParams['font.sans-serif'] = ['SimHei']     # 设置中文字体为黑体

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

1-5. 折线图、散点图、柱状图、直方图、饼图

2d绘图(上):折线图、散点图、柱状图、直方图、饼图_QomolangmaH的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_63834988/article/details/132872575?spm=1001.2014.3001.5502

6. 箱线图(Box Plot)

        用于显示数据的离散程度和异常值

import matplotlib.pyplot as pltdata = [1, 1, 2, 3, 3, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9]# 绘制箱线图
plt.boxplot(data)# 添加标题和标签
plt.title("箱线图示例")
plt.ylabel("数值")# 显示图形
plt.show()

7. 热力图(Heatmap)

        用于显示数据的矩阵形式,颜色表示数值大小

import matplotlib.pyplot as plt
import numpy as npdata = np.random.rand(5, 5)# 绘制热力图
plt.imshow(data, cmap='hot')# 添加颜色条
plt.colorbar()# 添加标题和标签
plt.title("热力图示例")
plt.xlabel("X轴")
plt.ylabel("Y轴")# 显示图形
plt.show()

8. 面积图(Area Plot)

        用于显示随时间或其他变量的变化趋势,通过填充颜色来表示不同区域的数值

import matplotlib.pyplot as pltx = [1, 2, 3, 4, 5]
y1 = [1, 3, 4, 2, 5]
y2 = [2, 4, 1, 3, 2]# 绘制面积图
plt.fill_between(x, y1, alpha=0.5, label='区域1')
plt.fill_between(x, y2, alpha=0.5, label='区域2')# 添加标题和标签
plt.title("面积图示例")
plt.xlabel("X轴")
plt.ylabel("Y轴")# 添加图例
plt.legend()# 显示图形
plt.show()

        其中alpha=0.5表示填充颜色的透明度

9. 等高线图(Contour Plot)

        用于显示二维数据的等高线图,其中不同高度的曲线表示不同数值

import numpy as np
import matplotlib.pyplot as plt# 创建二维数组作为数据
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))# 绘制等高线图
plt.contour(X, Y, Z)# 添加标题和标签
plt.title("等高线图示例")
plt.xlabel("X轴")
plt.ylabel("Y轴")# 显示图形
plt.show()
  • 创建了一个二维数组作为数据:通过使用np.linspace函数生成一系列均匀分布的数值,然后使用np.meshgrid函数将这些数值转换为网格状的坐标点。通过对坐标点进行某种运算,生成了对应的二维数据。
  • 使用plt.contour(X, Y, Z)绘制等高线图,其中XY表示坐标点的网格,Z表示对应位置的数据值。

10. 极坐标图(Polar Plot)

        使用极坐标而不是直角坐标来显示数据,常用于显示周期性数据

import numpy as np
import matplotlib.pyplot as plt# 创建角度数据和半径数据
theta = np.linspace(0, 2*np.pi, 100)
r = np.sin(3*theta)# 绘制极坐标图
plt.polar(theta, r)# 添加标题
plt.title("极坐标图示例")# 显示图形
plt.show()
  • 创建角度数据和半径数据:通过使用np.linspace函数生成一系列均匀分布的角度值,并使用某种函数关系生成对应的半径值。
  • 使用plt.polar(theta, r)绘制极坐标图,其中theta表示角度值,r表示对应角度的半径值。


 

相关文章:

【深度学习】 Python 和 NumPy 系列教程(十四):Matplotlib详解:1、2d绘图(下):箱线图、热力图、面积图、等高线图、极坐标图

目录 一、前言 二、实验环境 三、Matplotlib详解 1、2d绘图类型 0. 设置中文字体 1-5. 折线图、散点图、柱状图、直方图、饼图 6. 箱线图(Box Plot) 7. 热力图(Heatmap) 8. 面积图(Area Plot) 9. 等…...

IMU+摄像头实现无标记运动捕捉

惯性传感和计算机视觉的进步为在临床和自然环境中获得精准数据带来了新可能。然而在临床应用时需要仔细地将传感器与身体对齐,这减慢了数据收集过程。 随着无标记运动捕捉的发展,研究者们提出了一个新的深度学习模型,利用来自视觉、惯性传感…...

前后端分离,JSON数据如何交互

如何接收: 在配置文件商法加上相应注解 EnableWebMvc 在接收的路径上加上RequestBody注解 注解的作用:在Spring框架中,RequestBody注解用于将HTTP请求的body中的内容转换为Java对象,并将其作为参数传递给控制器方法。它通常用…...

docker中已创建容器的修改方法

环境信息以CentOS8为例 停止容器 #docker stop 容器名或id docker stop mysql停止docker服务 systemctl stop docker修改docker配置文件 配置文件在: /var/lib/docker/containers/{容器id} 如:/var/lib/docker/containers/92acfba87567bcca981ad17c0e…...

uniapp中video播放视频上按钮没显示的问题

video标签层级很高,尝试了添加z-index,但无效果 通过查阅资料,得知cover-view层级比video层级高 效果图 需求是为了使直播时,可选是原画/流畅 解决方案 首先,在pages.json中配置右上角的图标 {"path" : …...

docker学习:dockerfile和docker-compose

学习如何使用dockerfile 以下内容,部分来自gpt生成,里面的描述可能会出现问题,但代码部分,我都会进行测试。 1. 需求 对于一个docker,例如python,我们需要其在构建成容器时,就有np。有以下两种方…...

Pycharm 配置python项目本地运行环境

1.打开Pycharm,打开Setting 2. 新建本地环境 3.如果报错如上图所示,请通过cmd来新建本地环境,具体步骤如下 在对应的代码路径下,通过virtualenv venv来创建虚拟路径 安装好之后,安装对应的依赖包即可 pip3 install -r ./require…...

DevEco Studio中如何设置HarmonyOS/OpenHarmony应用开发

DevEco Studio内置有帮助中心,初学HarmonyOS 及OpenHarmony应用、元服务的开发者,通过内置的帮助中去系统的学习相关内容,是边练边学,快速上手的最佳方式。 一、帮助 二、快速开始 三、HarmonyOS应用、元服务开发相关 四、OpenHa…...

Matlab图像处理-三原色

三原色 根据详细的实验结果,人眼中负责颜色感知的细胞中约有65%对红光敏感,33%对绿光敏感,只有2%对蓝光敏感。正是人眼的这些吸收特性决定了所看到的彩色是一般所谓的原色红(R)、绿(G)和蓝&…...

QLExpress代码解读,运行原理解析

简介: 本文针对上图的功能详细图,进行逐个的简单介绍:代码入口、代码的主要逻辑和算法。 调用代码实例 //本文以helloworld案例,开启了两个打印日志的参数,实际使用通常不建议打开。 boolean printParseLog true;//语法分析日志开…...

M1 Mac创建虚拟环境遇到的问题

报错信息 PackagesNotFoundError: The following packages are not available from current channels: python3.7 Current channels: https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/osx-arm64 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarch htt…...

flutter 与H5交互

主要是flutter内嵌H5页面,之后就是两者之间的交互 flutter:webview_flutter 4.2.2 H5: uniapp 1、flutter向H5传参 //在flutter 中的web页面,可在onPageFinished中向H5进行传参onPageFinished: (String url) async {WebViewCont…...

【Java 基础篇】Java类型通配符:解密泛型的神秘面纱

在Java中,类型通配符(Type Wildcard)是泛型的重要概念之一。它使得我们能够更加灵活地处理泛型类型,使代码更通用且可复用。本文将深入探讨Java类型通配符的用法、语法和最佳实践。 什么是类型通配符? 类型通配符是一…...

《极客时间:如何成为学习高手》【方法论】

本篇博客是学习过程中的笔记整理和个人思考。原文链接:https://time.geekbang.org/column/intro/100081501?tabcatalog 底层逻辑01|如何减少对学习的排斥和厌恶心理,使其变得相对愉悦?02|学会这 4 点,你也…...

如何处理ChatGPT在文本生成中的语法错误和不合理性?

ChatGPT是一种强大的自然语言处理模型,但它并不是完美的,有时会产生语法错误或不合理的文本。这些问题可能会影响模型生成的内容的质量和可信度。在处理ChatGPT中的语法错误和不合理性时,有许多方法和策略可以采用,以下是一些详细…...

GitHub常用命令

1. 将本文件夹初始化为一个本地git仓库 git init 2. 将github的远程克隆到本地 git clone XXX 3. 添加所有文件到暂存区 git add . 4. 删除工作区文件 git rm [file] 5. 提交 git commit -m "提交信息(比如:my first commit file&#xff…...

【Linux学习笔记】 - 常用指令学习及其验证(上)

前言:本文主要记录对Linux常用指令的使用验证。环境为阿里云服务器CentOS 7.9。关于环境如何搭建等问题,大家可到同平台等各大资源网进行搜索学习,本文不再赘述。 由于本人对Linux学习程度尚且较浅,本文仅介绍验证常用指令的常用…...

火山引擎边缘云助力智能科技赋予生活更多新意

当下,先进的科学技术使得我们的日常生活变得快捷、舒适。大到上百层智能大厦、高端公共场所、社会智能基础设施,小到智能家居监控、指纹密码锁等,在这个充满想象力的时代,科技以更加智能化的方式改变和守护我们的生活。 引入智能…...

【无标题】CTreeCtrl更改-/+展开按钮颜色

#pragma once #include <list>// CMyTreeCtrlclass CMyTreeCtrl : public CTreeCtrl {private:std::list<std::...

【深度学习】 Python 和 NumPy 系列教程(十九):Matplotlib详解:2、3d绘图类型(5)3D等高线图(3D Contour Plot)

目录 一、前言 二、实验环境 三、Matplotlib详解 1、2d绘图类型 2、3d绘图类型 0. 设置中文字体 1. 3D线框图&#xff08;3D Line Plot&#xff09; 2. 3D散点图&#xff08;3D Scatter Plot&#xff09; 3. 3D条形图&#xff08;3D Bar Plot&#xff09; 4. 3D曲面图…...

PySide6多线程避坑指南:你的‘暂停’和‘停止’真的安全吗?

PySide6多线程避坑指南&#xff1a;你的‘暂停’和‘停止’真的安全吗&#xff1f; 在PySide6的多线程开发中&#xff0c;暂停和停止线程看似简单的操作背后&#xff0c;隐藏着许多开发者容易忽视的陷阱。本文将深入剖析这些潜在问题&#xff0c;并提供经过实战验证的安全解决方…...

RT-Thread下STM32与BH1750光照传感器的快速驱动实现

1. RT-Thread与BH1750的完美组合 第一次接触BH1750光照传感器时&#xff0c;我还在用裸机开发。当时为了调试IIC通讯&#xff0c;整整花了两天时间排查时序问题。后来接触到RT-Thread&#xff0c;发现它的软件包生态简直是为传感器开发量身定制的。就拿BH1750来说&#xff0c;官…...

RMBG-2.0与LangChain集成:智能内容生成系统搭建

RMBG-2.0与LangChain集成&#xff1a;智能内容生成系统搭建 1. 引言 你有没有遇到过这样的情况&#xff1a;做电商需要批量处理商品图片&#xff0c;做新媒体需要快速生成内容素材&#xff0c;做设计需要智能抠图换背景&#xff1f;传统方法要么费时费力&#xff0c;要么效果…...

物联网水产养殖解决方案:全域监控,数据驱动科学养殖

一、方案前言水产养殖作为我国农业支柱产业之一&#xff0c;是保障民生水产品供应的核心板块&#xff0c;当前正面临从传统粗放式养殖向现代化、精准化、绿色化养殖转型的关键节点。随着养殖密度提升、环保要求趋严、市场对高品质水产品需求增长&#xff0c;以及劳动力成本攀升…...

intv_ai_mk11效果实测:在中文长文本理解任务(>3000字技术文档)中摘要准确率与人工对比达92%

intv_ai_mk11效果实测&#xff1a;在中文长文本理解任务&#xff08;>3000字技术文档&#xff09;中摘要准确率与人工对比达92% 1. 引言&#xff1a;AI长文本理解的新突破 当我们面对动辄数千字的技术文档时&#xff0c;如何快速抓住核心内容一直是个难题。传统方法要么依…...

告别ViT的笨重:手把手教你用SegFormer在Cityscapes数据集上实现高效语义分割

告别ViT的笨重&#xff1a;手把手教你用SegFormer在Cityscapes数据集上实现高效语义分割 在自动驾驶、遥感影像分析等计算机视觉应用中&#xff0c;语义分割技术扮演着关键角色。传统基于卷积神经网络&#xff08;CNN&#xff09;的方法虽然取得了显著进展&#xff0c;但面临着…...

新手友好:基于快马平台快速上手dhnvr416h-hd设备数据监控开发

新手友好&#xff1a;基于快马平台快速上手dhnvr416h-hd设备数据监控开发 最近在做一个物联网项目&#xff0c;需要对接dhnvr416h-hd设备的数据监控功能。作为刚接触这个领域的新手&#xff0c;我发现理解设备数据格式和通信流程是最关键的第一步。好在通过InsCode(快马)平台的…...

Java记录模式安全边界警告:3类不可序列化场景、2种反编译泄露风险(Oracle安全白皮书节选)

第一章&#xff1a;Java记录模式安全边界警告&#xff1a;3类不可序列化场景、2种反编译泄露风险&#xff08;Oracle安全白皮书节选&#xff09;不可序列化的三类典型场景 Java记录&#xff08;Record&#xff09;类型在设计上强调不可变性与透明性&#xff0c;但其默认序列化行…...

告别手动填表!用CANoe 11.0 (x64)模板快速创建DBC数据库(附Signal/Message避坑指南)

告别手动填表&#xff01;用CANoe 11.0 (x64)模板快速创建DBC数据库&#xff08;附Signal/Message避坑指南&#xff09; 在汽车电子开发领域&#xff0c;DBC数据库的创建往往是工程师们既熟悉又头疼的环节。面对动辄上百个信号的需求表&#xff0c;传统的手动创建方式不仅耗时费…...

无需配置环境!MinerU镜像一键部署,即刻体验智能文档解析

无需配置环境&#xff01;MinerU镜像一键部署&#xff0c;即刻体验智能文档解析 1. 为什么选择智能文档解析&#xff1f; 在日常办公和学习中&#xff0c;我们经常需要处理各种文档资料&#xff1a;PDF报告、扫描合同、学术论文、财务报表等。传统方式要么需要手动输入&#…...