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

Python的Matplotlib库应用(超详细教程)

目录

一、环境搭建

1.1 配置matplotlib库

1.2 配置seaborn库

1.3 配置Skimage库

二、二维图像

2.1 曲线(直线)可视化

2.2 曲线(虚线)可视化

2.3 直方图

2.4 阶梯图

三、三维图像

3.1 3D曲面图

3.2 3D散点图

3.3 3D散点图


        Matplotlib库是一款功能强大且灵活的Python数据可视化软件包,它支持跨平台运行,能够根据NumPy ndarray数组绘制高质量的2D图像(也支持部分3D图像)。Matplotlib提供了类MATLAB的绘图API,使得绘图过程简单直观,代码清晰易懂。它广泛应用于数据分析、科学研究、报告生成以及教育与培训等领域,用户可以通过它创建多样化的图表类型,如折线图、柱状图、散点图等,并对图表的各个元素进行高度定制化的调整。无论是简单的图表还是复杂的可视化需求,Matplotlib都能提供高质量的输出。

一、环境搭建

1.1 配置matplotlib库

pip install matplotlib

安装成功展示图: 

1.2 配置seaborn库

pip install seaborn

 安装成功展示图: 

1.3 配置Skimage库

pip install scikit-image

 安装成功展示图: 

二、二维图像

2.1 曲线(直线)可视化

import matplotlib.pyplot as plt
import numpy as npX = np.linspace(1, 15)
Y = np.sin(X)
# 图像大小设置
plt.figure(figsize=(10,8))
# 绘制线
plt.plot(X, Y, color='red')
plt.xlabel('X')
plt.ylabel('Y')
# 设置图像标题名
plt.title("y = sin(X)")
# 是否添加网格
plt.grid(True)
# 绘制图像
plt.show()

2.2 曲线(虚线)可视化

import matplotlib.pyplot as plt
import numpy as npX = np.linspace(1, 15)
Y = np.sin(X)
# 图像大小设置
plt.figure(figsize=(10,8))
# 绘制线 蓝色 虚线
plt.plot(X, Y, "b-.")
plt.xlabel(r"$\alpha$")
plt.ylabel(r"$\beta$")
# 设置图像标题名
plt.title("$y=\sum sin(x)$")
# 是否添加网格
plt.grid(True)
# 绘制图像
plt.show()

2.3 直方图

import matplotlib.pyplot as plt
import numpy as np
import matplotlib
matplotlib.rcParams['axes.unicode_minus'] = False
import seaborn as sns
sns.set(font = "Kaiti", style = "ticks", font_scale = 1.4)X = np.linspace(1, 15)
Y = np.sin(X)
# 图像大小设置
plt.figure(figsize=(10,8))
# 生成数据
data = np.random.randn(200, 1)
# 可视化
plt.hist(data, 10)
plt.xlabel("取值")
plt.ylabel("频数")
plt.title("直方")
# 绘制图像
plt.show()

2.4 阶梯图

import matplotlib.pyplot as plt
import numpy as np
import matplotlib
from matplotlib.pyplot import xticksmatplotlib.rcParams['axes.unicode_minus'] = False
import seaborn as sns
sns.set(font = "Kaiti", style = "ticks", font_scale = 1.4)X = np.linspace(1, 15)
Y = np.sin(X)
# 图像大小设置
plt.figure(figsize=(10,8))
# 阶梯图设置
plt.step(X, Y, c = "r", label = "sin(x)", linewidth = 3)
# 添加辅助线
plt.plot(X, Y, "o--", color = "grey", alpha = 0.5)
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Bar")
# 设置图例位置及大小
plt.legend(loc = "lower right", fontsize = "small")
# 设置X轴坐标系取值
xtick = [0, 5, 10, 15]
xticklabels = [str(x) + "万" for x in xtick]
# x轴的坐标取值,倾斜度为45°
plt.xticks(xtick, xticklabels, rotation = 45)
# 调整水平空间距离
plt.subplots_adjust(hspace = 0.5)
plt.show()

三、三维图像

3.1 3D曲面图

import matplotlib.pyplot as plt
import numpy as np
import matplotlib
from matplotlib.pyplot import xticks
from pyparsing import alphas
matplotlib.rcParams['axes.unicode_minus'] = False
import seaborn as sns
sns.set(font = "Kaiti", style = "ticks", font_scale = 1.4)x = np.linspace(-4, 4, num = 50)
y = np.linspace(-4, 4, num = 50)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# 3D曲面图可视化
fig = plt.figure(figsize=(6, 5))
# 设置3D坐标
ax1 = fig.add_subplot(1, 1, 1, projection = '3d')
# 绘制曲面图, rstride:行的跨度 cstride:列的跨度 alpha:透明度 cmap:颜色
ax1.plot_surface(X, Y, Z, rstride = 1, cstride = 1, alpha = 0.5, cmap = plt.cm.coolwarm)
# 绘制z轴方向的等高线
cset = ax1.contourf(X, Y, Z, zdir = 'z', offset = 1, cmap = plt.cm.CMRmap)
ax1.set_xlabel("X")
ax1.set_xlim(-4, 4)
ax1.set_ylabel("Y")
ax1.set_ylim(-4, 4)
ax1.set_zlabel("Z")
ax1.set_zlim(-1, 1)
ax1.set_title("曲面图和等高线")
plt.show()

 

3.2 3D散点图

import matplotlib.pyplot as plt
import numpy as np
import matplotlib
from matplotlib.pyplot import xticks
from pyparsing import alphas
matplotlib.rcParams['axes.unicode_minus'] = False
import seaborn as sns
sns.set(font = "Kaiti", style = "ticks", font_scale = 1.4)theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
x = np.cos(theta)
y = np.sin(theta)
z = np.linspace(-2, 2, 100)
r = z ** 2 + 1
# 在子图中绘制三维图像
fig = plt.figure(figsize=(10, 10))
# 将坐标系设置为3D坐标系
ax1 = fig.add_subplot(1, 1, 1, projection='3d')
ax1.plot(x, y, z, "b-")
ax1.view_init(elev = 20, azim = 25)
ax1.set_title("3D曲线图")
plt.show()

 

3.3 3D散点图

import matplotlib.pyplot as plt
import numpy as np
import matplotlib
from matplotlib.pyplot import xticks
from pyparsing import alphas
matplotlib.rcParams['axes.unicode_minus'] = False
import seaborn as sns
sns.set(font = "Kaiti", style = "ticks", font_scale = 1.4)theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
x = np.cos(theta)
y = np.sin(theta)
z = np.linspace(-2, 2, 100)
r = z ** 2 + 1
# 在子图中绘制三维图像
fig = plt.figure(figsize=(10, 10))
# 将坐标系设置为3D坐标系
ax1 = plt.subplot(1, 1, 1, projection='3d')
ax1.scatter3D(x, y, z, c = "r", s = 20)
ax1.view_init(elev = 20, azim = 25)
ax1.set_title("3D散点图")
plt.show()

上一篇文章:Python的pandas库基础知识(超详细教学)-CSDN博客https://blog.csdn.net/Z0412_J0103/article/details/144849671https://blog.csdn.net/Z0412_J0103/article/details/144849671icon-default.png?t=O83Ahttps://blog.csdn.net/Z0412_J0103/article/details/144849671下一篇文章:Python实现简单的缺失值处理(超详细教程)-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/Z0412_J0103/article/details/144956087

相关文章:

Python的Matplotlib库应用(超详细教程)

目录 一、环境搭建 1.1 配置matplotlib库 1.2 配置seaborn库 1.3 配置Skimage库 二、二维图像 2.1 曲线(直线)可视化 2.2 曲线(虚线)可视化 2.3 直方图 2.4 阶梯图 三、三维图像 3.1 3D曲面图 3.2 3D散点图 3.3 3D散…...

负载均衡服务器要怎么配置?

目录 一、概述: 二、硬件配置: 三、操作系统配置: 四、负载均衡软件: 五、网络配置: 六、软件安装步骤: 6.1 安装 Nginx 6.2 安装 LVS 6.3 安装 HAProxy 6.4 安装 Keepalived 一、概述&#xff1…...

CANopen转EtherCAT网关连接伺服驱动

在现代工业自动化领域,CANopen和EtherCAT是两种常见的通信协议,各自在不同的应用场景中发挥着重要作用。然而,随着工业自动化系统的日益复杂化,不同设备间的通信需求也变得多样化。因此,如何实现不同协议设备之间的无缝…...

自动化测试脚本实践:基于 Bash 的模块化测试框架

前言 在现代软件开发中,测试自动化是确保软件质量和稳定性的核心手段之一。随着开发周期的缩短和功能模块的增多,手动测试逐渐无法满足高效性和准确性的需求。因此,测试人员需要依赖自动化工具来提升测试效率,减少人为干预和错误。…...

WebSocket 测试入门篇

Websocket 是一种用于 H5 浏览器的实时通讯协议,可以做到数据的实时推送,可适用于广泛的工作环境,例如客服系统、物联网数据传输系统, 基础介绍 我们平常接触最多的是 http 协议的接口,http 协议是请求与响应的模式&…...

Apache Traffic存在SQL注入漏洞(CVE-2024-45387)

免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...

Centos7使用yum工具出现 Could not resolve host: mirrorlist.centos.org

在 CentOS 7 中使用 yum 工具时,出现 "Could not resolve host: mirrorlist.centos.org" 的错误,一般情况是因为默认的镜像源无法访问。 以下是一些常用的解决方法: 检查网络连接:首先使用 ping 命令测试网络连接是否…...

zookeeper shell操作和zookeeper 典型应用(配置中心、集群选举服务、分布式锁)

文章目录 引言I zookeeper客户端命令查看子节点 ls创建子节点 create获取节点信息 get更新节点数据 set删除节点 delete\ rmrII 监听机制node1:设置监听node3:修改监听节点node1:得到监听反馈III zookeeper 典型应用分布式锁集群选举服务数据发布/订阅(配置中心)引言 zk 的…...

Vue中Watch使用监听修改变动

使用注意 监听一个值时 多个值时...

Lua语言的文件IO

1、我们都知道,在任何语言当中都有输入输出,比如c语言当中就有很多printf,scanf,get ,put,gets,puts,文件io:open,read,write,close,标准io:fopen,fread,fwrite,fclose.在lua语言当中,也有相同的一些输入输出特性,叫io.open,io.re…...

C语言基本知识复习浓缩版:输出函数printf

输出函数printf学习 printf()的作用是将文本输出到屏幕上使用之前需要先引入stdio.h头文件printf函数在使用的时候,至少需要一个参数 printf() 是 C 语言标准库中的一个函数,用于将格式化的文本输出到标准输出设备(通常是屏幕)。…...

Ubuntu中使用miniconda安装R和R包devtools

安装devtools环境包 sudo apt-get install gfortran -y sudo apt-get install build-essential -y sudo apt-get install libxt-dev -y sudo apt-get install libcurl4-openssl-dev -y sudo apt-get install libxml2.6-dev -y sudo apt-get install libssl-dev -y sudo apt-g…...

Jmeter-压测时接口如何按照顺序执行

Jmeter-压测时接口如何按照顺序执行-临界部分控制器 在进行压力测试时,需要按照顺序进行压测,比如按照接口1、接口2、接口3、接口4 进行执行 查询结果是很混乱的,如果请求次数少,可能会按照顺序执行,但是随着次数增加…...

Ungoogled Chromium127 编译指南 MacOS篇(七)- 安装依赖包

1. 引言 在获取了 Ungoogled Chromium 的源代码之后,我们需要安装所有必要的依赖包。这些依赖包对于成功编译 Chromium 至关重要。本文将指导您完成所有必需软件包的安装。 2. 依赖包安装 2.1 使用 Homebrew 安装基础依赖 # 安装 Ninja 构建系统 brew install n…...

批量写入数据到数据库,卡顿怎么解决

在批量写入数据到数据库时,遇到卡顿或性能瓶颈是比较常见的问题。以下是一些可能的解决方案和优化策略,帮助你提高批量写入的性能: ### 1. **批量大小优化** - **调整批量大小**:尝试调整批量写入的数据量,找到一个平衡点。过大或过小的批量大小都可能影响性能。通常,批…...

Python爬虫 - 豆瓣图书数据爬取、处理与存储

文章目录 前言一、使用版本二、需求分析1. 分析要爬取的内容1.1 分析要爬取的单个图书信息1.2 爬取步骤1.2.1 爬取豆瓣图书标签分类页面1.2.2 爬取分类页面1.2.3 爬取单个图书页面 1.3 内容所在的标签定位 2. 数据用途2.1 基础分析2.2 高级分析 3. 应对反爬机制的策略3.1 使用 …...

Qt 5.14.2 学习记录 —— 칠 QWidget 常用控件(2)

文章目录 1、Window Frame2、windowTitle3、windowIcon4、qrc机制5、windowOpacity 1、Window Frame 在运行Qt程序后,除了用户做的界面,最上面还有一个框,这就是window frame框。对于界面的元素,它们的原点是Qt界面的左上角或win…...

在vue3项目中利用自定义ref实现防抖

一&#xff0c;效果展示 自定义ref实现防抖效果 二&#xff0c;代码部分 1在app.vue中 <template><input v-model"text"/><p class"result">{{text}}</p> </template><script setup> import {debounceRef} from ./u…...

服务器及MySQL安全设置指南

文章目录 Linux安全配置1、密码复杂度策略2、登陆失败策略3、登录超时策略4、安全日志记录5、账户策略5.1 创建系统管理员&#xff08;应该对/var进行授权&#xff0c;修改可能会影响到ssh登录&#xff09;5.2 创建安全管理员&#xff08;应该对/etc进行授权&#xff09;5.3 创…...

MDX语言的网络编程

MDX语言的网络编程探索 引言 在当今信息技术快速发展的时代&#xff0c;网络编程越来越成为软件开发的重要组成部分。无论是为了创建Web应用&#xff0c;还是为了开发与云服务交互的程序&#xff0c;网络编程的知识愈发显得重要。MDX&#xff08;Multidimensional Expression…...

进程通信与网络协议

一、进程间通信1、管道&#xff1a;管道是基于文件描述符的半双工的通信方式&#xff0c;数据单向流动&#xff0c;数据读取后会从管道中删除。A. 无名管道 ​ i. 仅存在于内核空间中&#xff0c;无文件系统入口 ​ i. 仅支持亲缘间进程通信 ​ i. 进程退出后管道会自动释放 ​…...

stock-sdk-mcp 的实践整理绰

一、什么是urllib3&#xff1f; urllib3 是一个用于处理 HTTP 请求和连接池的强大、用户友好的 Python 库。 它可以帮助你&#xff1a; 发送各种 HTTP 请求&#xff08;GET, POST, PUT, DELETE等&#xff09;。 管理连接池&#xff0c;提高网络请求效率。 处理重试和重定向。 支…...

值类型与引用类型:别再只背“栈和堆”了,看这 个实际影响骋

基础示例&#xff1a;单工作表 Excel 转 TXT 以下是将一个 Excel 文件中的第一个工作表转换为 TXT 的完整步骤&#xff1a; 1. 加载并读取Excel文件 from spire.xls import * from spire.xls.common import * workbook Workbook() workbook.LoadFromFile("示例.xlsx"…...

嵌入式开发工具链实战指南与效率提升

1. 嵌入式开发工具全景概览在嵌入式系统开发领域&#xff0c;工程师们每天都要面对交叉编译、调试、性能分析等重复性工作。经过十五年的一线开发实践&#xff0c;我整理出一套能显著提升效率的工具组合&#xff0c;这些工具覆盖了从芯片选型到产品发布的完整生命周期。不同于网…...

007、记忆(Memory)机制:让AI拥有对话上下文的能力

007、记忆&#xff08;Memory&#xff09;机制&#xff1a;让AI拥有对话上下文的能力 昨天深夜调试一个对话机器人&#xff0c;用户问“今天的天气怎么样&#xff1f;”&#xff0c;系统返回了天气信息&#xff1b;接着用户又问“那明天呢&#xff1f;”&#xff0c;结果机器人…...

【微软MVP认证方案】:EF Core 10向量搜索成本压缩三板斧——量化指标、自动缩容阈值、混合检索降权模型

第一章&#xff1a;【微软MVP认证方案】&#xff1a;EF Core 10向量搜索成本压缩三板斧——量化指标、自动缩容阈值、混合检索降权模型在 EF Core 10 集成向量搜索&#xff08;如 Azure AI Search 或 Qdrant 插件&#xff09;的生产场景中&#xff0c;向量相似度计算极易引发 C…...

2025届学术党必备的六大降重复率工具推荐榜单

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 需从文本特征方面来着手降低AIGC率&#xff0c;详而言之&#xff0c;对于高频词汇能够予以替…...

windows/linux安装NVIDIA驱动(cuda加速)

目录 1、windwos安装 2、linux安装NVIDIA驱动&#xff08;cuda加速&#xff09; &#xff08;1&#xff09;检测是否有NVIDIA显卡 &#xff08;2&#xff09;驱动安装 1、windwos安装 https://www.nvidia.cn/geforce/drivers/https://www.nvidia.cn/geforce/drivers/ 2、l…...

Java自动化生成Mapbox-GL雪碧图及JSON配置实战指南

1. 为什么需要自动化生成雪碧图&#xff1f; 在地图应用开发中&#xff0c;图标资源管理一直是个让人头疼的问题。我刚开始接触Mapbox-GL时&#xff0c;每次新增或修改图标都要手动拼接图片、调整JSON配置&#xff0c;效率低还容易出错。后来发现用Java程序自动化处理&#xff…...

mPLUG视觉问答快速上手:5分钟完成本地部署,支持多格式图片+自然语言提问

mPLUG视觉问答快速上手&#xff1a;5分钟完成本地部署&#xff0c;支持多格式图片自然语言提问 你是不是经常遇到这种情况&#xff1a;看到一张复杂的图表&#xff0c;想快速知道它表达了什么&#xff1b;或者拿到一张产品设计图&#xff0c;想了解其中的细节信息&#xff1b;…...