python绘图系统27:matplotlib中平面坐标、极坐标和三维坐标的所有绘图函数
文章目录
- 绘图函数列表
- 为DrawType添加这些绘图函数
- 绘图类别跳转坐标系
- 坐标
- 源代码
绘图函数列表
下面整理了几乎所有matplotlib中的绘图函数,及其在不同坐标轴下的表现。
| 函数 | 类别 | 2D | polar | 3D | 备注 |
|---|---|---|---|---|---|
| imshow | 图像 | X | ❌ | ❌ | |
| pcolormesh | 伪彩图 | [X,Y,]Z | X,Y,Z | ❌ | |
| plot | 曲线图 | x[,y] | x[,y] | x,y[,z] | |
| scatter | 散点图 | x,y/X,Y | x,y | x,y,[,z] | 可为任意维度 |
| stem | 茎叶图 | x,y | x,y | x,y[,z] | |
| step | 阶梯图 | x,y | x,y | x,y[,z] | |
| bar | 条形图 | x,y | x,y | x,y[,z] | |
| barh | 横向条形图 | x,y | x,y | ❌ | |
| stackplot | 填充线图 | x,y | x,y | ❌ | |
| plot_surface | 曲面图 | ❌ | ❌ | x,y,z | x,y必须是网格 |
| plot_wireframe | 网格图 | ❌ | ❌ | x,y,z | x,y必须是网格 |
| plot_trisurf | 三角面图 | ❌ | ❌ | x,y,z | x,y,z是一维数组 |
| errorbar | 误差线 | x,y xerr,yerr | x,y xerr,yerr | x,y,z xerr,yerr,zerr | |
| fill_between | 纵向区间图 | x,y1,y2 | x,y1,y2 | ❌ | |
| fill_betweenx | 横向区间图 | y, x1, x2 | x,y1,y2 | ❌ | |
| contour | 等高线 | [x,y,]z | [x,y,]z | x,y,z | |
| contourf | 填充等高线 | [x,y,]z | [x,y,]z | x,y,z | |
| quiver | 向量场图 | x,y,u,v | x,y,u,v | x,y,z,u,v,w | |
| streamplot | 流场图 | x,y,u,v | x,y,u,v | ❌ | |
| barbs | 风场图 | x,y,u,v | x,y,u,v | ❌ | |
| hist | 直方图 | x | x | x | |
| boxplot | 箱线图 | x | x | x | |
| violinplot | 小提琴图 | x | x | ❌ | |
| enventplot | 信封图 | x | x | ❌ | |
| hist2d | 二维直方图 | x,y | x,y | ❌ | |
| hexbin | 钻石图 | x,y | x,y | ❌ | |
| pie | 饼图 | x | x | ❌ | |
| tricontour | 自由等高线 | x,y,z | x,y,z | x,y,z | |
| tricontourf | 自由填充等高线 | x,y,z | x,y,z | x,y,z | |
| tricolor | 自由伪彩图 | x,y,z | ❌ | ||
| triplot | 三角骨架图 | x,y | ❌ |
为DrawType添加这些绘图函数
之所以闲得无聊总结matplotlib中的绘图函数,是为了在Python绘图系统中正确第调用它们。
有了这些绘图类别后,首先绘图字典需要更新,这个字典不能做成全局变量,因为其中的ax,其实是作为函数参数传递进来的。
funcDct = {"点线图" : ax.plot, "曲线图" : ax.plot, "散点图" : ax.scatter, "图像" : ax.imshow, "伪彩图" : ax.pcolormesh, "条形图" : ax.bar, "横向条形图": ax.barh, "茎叶图" : ax.stem, "阶梯图": ax.step,"填充图" : ax.stackplot, "误差线" : ax.errorbar, "区间图" : ax.fill_between, "横向区间图": ax.fill_betweenx, "曲面图" : ax.plot_surface, "网格图" : ax.plot_wireframe,"三角面图": ax.plot_trisurf,"等高线" : ax.contour, "填充等高线" : ax.contourf,"向量场图": ax.quiver, "流场图":ax.streamplot,"风场图" : ax.barbs, "直方图" : ax.hist, "二维直方图":ax.hist2d,"钻石图" : ax.hexbin, "信封图" : ax.enventplot, "箱线图" : ax.boxplot, "小提琴图":violinplot,"饼图" : ax.pie,"自由等高线" : ax.tricontour,"自由填充等高线" : ax.tricontourf,"自由伪彩图" : ax.tricolor,"三角骨架图" : ax.triplot
}
然后据此更新self.TYPES,
self.TYPES = ["点线图", "曲线图", "散点图", "图像", "伪彩图" , "条形图", "横向条形图", "茎叶图", "阶梯图", "填充图", "误差线", "区间图", "横向区间图", "曲面图", "网格图", "三角面图", "等高线", "填充等高线","向量场图", "流场图", "风场图", "直方图", "二维直方图", "钻石图", "信封图", "箱线图", "小提琴图", "饼图", "自由等高线", "自由填充等高线" ,"自由伪彩图" ,"三角骨架图"]
绘图类别跳转坐标系
这些绘图函数建议使用的坐标系如下表
| 绘图函数 | 图像类别 | 建议的坐标 |
|---|---|---|
| imshow | 图像 | None |
| plot_surface | 曲面图 | 3d |
| plot_wireframe | 网格图 | 3d |
| plot_trisurf | 三角面图 | 3d |
| tricontour | 自由等高线 | None, polar, 3d |
| plot | 曲线图 | None, polar, 3d |
| scatter | 散点图 | None, polar, 3d |
| stem | 茎叶图 | None, polar, 3d |
| step | 阶梯图 | None, polar, 3d |
| bar | 条形图 | None, polar, 3d |
| errorbar | 误差线 | None, polar, 3d |
| contour | 等高线 | None, polar, 3d |
| quiver | 向量场图 | None, polar, 3d |
| pcolormesh | 伪彩图 | None, polar |
| barh | 横向条形图 | None, polar |
| stackplot | 填充线图 | None, polar |
| fill_between | 区间图 | None, polar, |
| fill_betweenx | 横向区间图 | None, polar, |
| streamplot | 流场图 | None, polar |
| barbs | 风场图 | None, polar |
| violinplot | 小提琴图 | None, polar |
| enventplot | 信封图 | None, polar |
| hist2d | 二维直方图 | None, polar |
| hexbin | 钻石图 | None, polar |
| pie | 饼图 | None, polar |
| tricolor | 自由伪彩图 | None, polar |
| triplot | 三角骨架图 | None, polar |
| contourf | 填充等高线 | None, polar |
| tricontourf | 自由填充等高线 | None, polar |
| hist | 直方图 | None, polar |
| boxplot | 箱线图 | None, polar |
| tricontour | 自由等高线 | None, polar, 3d |
| plot | 曲线图 | None, polar, 3d |
| scatter | 散点图 | None, polar, 3d |
| stem | 茎叶图 | None, polar, 3d |
| step | 阶梯图 | None, polar, 3d |
| bar | 条形图 | None, polar, 3d |
| errorbar | 误差线 | None, polar, 3d |
| contour | 等高线 | None, polar, 3d |
| quiver | 向量场图 | None, polar, 3d |
故更改cbTypeChanged函数如下
def cbTypeChanged(self, evt):t = self.drawVars['type'].get()p = self.drawVars['proj'].get()NO3D = ("曲线图", "散点图", "茎叶图", "条形图", "误差线","等高线", "向量场图", "自由等高线")if t in ("图像"):self.wDct['proj']['value'] = ("None")elif t in ("曲面图", "网格图", "三角面图"):self.wDct['proj']['value'] = ("3d")elif t in NO3D:self.wDct['proj']['value'] = ("None", "3d", "polar")else:self.wDct['proj']['value'] = ("None", "polar")projs = self.wDct['proj']['value']if p not in projs:self.drawVars['proj'].set(projs[0]) self.cbProjChanged(None)
坐标
接下来要为这些绘图函数分类,发现最特殊的是imshow,只支持平面直角坐标;然后是三个三维绘图函数,只支持三维直角坐标,剩下的基本都同时支持平面直角和极坐标。
def cbTypeChanged(self, evt):t = self.drawVars['type'].get()p = self.drawVars['proj'].get()NO3D = ("曲线图", "散点图", "茎叶图", "条形图", "误差线","等高线", "向量场图", "自由等高线")if t in ("图像"):self.wDct['proj']['value'] = ("None")elif t in ("曲面图", "网格图", "三角面图"):self.wDct['proj']['value'] = ("3d")elif t in NO3D:self.wDct['proj']['value'] = ("None", "3d", "polar")else:self.wDct['proj']['value'] = ("None", "polar")projs = self.wDct['proj']['value']if p not in projs:self.drawVars['proj'].set(projs[0]) self.cbProjChanged(None)
最后,是坐标的变化,直角坐标系下的变化为
def cbProjNone(self, t):if t in ("点线图", "曲线图"):self.wDct['dim']['value'] = ('x', 'xy')elif t in ("图像", "直方图", "饼图", "箱线图", "小提琴图", "信封图"):self.wDct['dim']['value'] = ('x')elif t in ("误差线", "向量场图", "流场图", "风场图"):self.wDct['dim']['value'] = ('xyuv')elif t in ("伪彩图", "等高线", "填充等高线"):self.wDct['dim']['value'] = ('x', 'xyz')elif t in ("区间图", "横向区间图", "自由等高线", "自由伪彩图", "自由填充等高线"):self.wDct['dim']['value'] = ('xyz')else:self.wDct['dim']['value'] = ('xy')
经过对比发现,极坐标情况下除了没有imshow之外,其他绘图函数的坐标轴的个数与直角坐标基本相同,所以就直接调用cbProjNone了。
def cbProjPolar(self, t):self.cbProjNone(t)
相比之下,三维坐标的情况可能更加简单一些
def cbProj3d(self, t):if t in ("向量场图", "误差线"):self.wDct['dim']['value'] = ('xyzuvw')elif t in ("曲线图", "散点图", "茎叶图", "阶梯图", "条形图"):self.wDct['dim']['value'] = ('xy', 'xyz')else:self.wDct['dim']['value'] = ('xyz')
至此,就成功载入了几乎所有matplotlib中的函数。
源代码
Python绘图系统:
- 基础:将matplotlib嵌入到tkinter 📈简单绘图系统 📈数据导入📈三维绘图系统
- 自定义控件:坐标控件📉坐标列表控件📉多组数据绘图系统📉极坐标📉绘图风格📉风格控件
- 图表类型和风格:散点图和条形图📊混合类型图表📊多子图📊定制绘图风格
- 坐标设置进阶:动态更新组件📌导入外部文件📌导入txt
- 动图绘制:动图绘制🔥实现动图绘制系统
- 坐标列表进阶:导出数据📌系统菜单📌批量文件导入📌辅助坐标轴
- 绘图类型进阶:坐标映射📌八种绘图函数📌坐标和绘图函数设置📌所有绘图函数
相关文章:
python绘图系统27:matplotlib中平面坐标、极坐标和三维坐标的所有绘图函数
文章目录 绘图函数列表为DrawType添加这些绘图函数绘图类别跳转坐标系坐标源代码 绘图函数列表 下面整理了几乎所有matplotlib中的绘图函数,及其在不同坐标轴下的表现。 函数类别2Dpolar3D备注imshow图像X❌❌pcolormesh伪彩图[X,Y,]ZX,Y,Z❌plot曲线图x[,y]x[,y]…...
国庆中秋宅家自省: Python在Excel中绘图尝鲜
【一】国庆中秋: 悟 【国庆中秋】双节来临,相信各位有自己度过的方式,而我却以独特的方式度过了一个说出来不怕各位见笑的双节; 双节到来,没有太多惊喜,也没有太多的负面情绪, 只是喜欢独处,静静反省这些年走过的酸甜苦辣;生活中的许多不欢而散,不期而遇…...
计算机中的进制转换
在计算机软件中,经常需要进行进制转换,这包括二进制、八进制、十进制和十六进制之间的转换。以下是一些常见的转换方法: 二进制转十进制:这是最直接的转换,基本上不需要什么特别的算法。你只需要按照二进制的权值进行…...
Oracle统计信息问题排查常用SQL
Oracle统计信息问题排查常用SQL 对表的基本情况分析统计信息收集作业分析最近一次的统计信息收集修改触发统计信息收集的阈值 对表的基本情况分析 是否为临时表: select owner,table_name,temporary from dba_tables where table_namexxx;是否为分区表:…...
css圣杯布局和双飞翼布局
圣杯布局 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, in…...
机器学习笔记 - 深入研究spaCy库及其使用技巧
一、简述 spaCy 是一个用于 Python 中高级自然语言处理的开源库。它专为生产用途而设计,这意味着它不仅功能强大,而且快速高效。spaCy 在学术界和工业界广泛用于各种 NLP 任务,例如标记化、词性标注、命名实体识别等。 安装,这里使用阿里的源。 pip install spacy…...
网站强制跳转至国家反诈中心该怎么办?怎么处理?如何解封?
在互联网环境中,网站安全是非常重要的。然而,在实际操作过程中,不少网站可能因内容问题、技术安全漏洞等原因被迫下线甚至跳转至国家反诈骗中心网址。面对这一严峻问题,我们如何有效解决,让网站恢复运行并解除强制跳转…...
2023年10月4日
服务器 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//实例化一个服务器server new QTcpServer(this);//此时,服务器已经成功进入监听状态&…...
MacBook 录制电脑内部声音
MacBook 录制电脑内部声音 老妈喜欢跳广场舞,现在广场舞音频下载都收费了!没办法,只能自己录歌了,外录有杂音大家也都知道,所以就只能采用内录的方式然后再用 Audition 调整一下音量大小。 一、(前置条件&a…...
mysql主从复制和读写分离
在企业应用中,成熟的业务通常数据量都比较大 单台MySQL在安全性、高可用性和高并发方面都无法满足实际的需求 配置多台主从数据库服务器以实现读写分离 所以要做主从服务器,保证安全性 做一写一读服务器,将提升性能 1、什么是读写分离 …...
【计算机网络】网络层-数据平面(学习笔记)
一、网络层提供的服务 1、虚电路服务 通讯前建立虚电路,发送前认为选择路径,所以分组沿着同一条虚电路。 特点:带宽固定 2、数据报服务 数据可能沿着不同路径传输 3、网络层的两个层面 数据层面:源主机到目标主机 控制层面&…...
el-collapse 嵌套中 el-checkbox作为标题,选中复选框与el-tree联动
<el-drawertitle"应用授权":visible.sync"menuDrawer"><el-collapse accordion style"padding: 15px"><el-collapse-item v-for"item in platList"><template slot"title"><el-checkbox v-model…...
Ubuntu中还换源 sudo apt-get update更新失败
sudo apt-get update更新失败 1 前提2 编辑3 换源 1 前提 浏览器可以访问百度 如下文章: VMware 中虚拟机没网 2 编辑 输入如下命令,进入换源文件: sudo gedit /etc/apt/sources.list 3 换源 中科大 deb http://mirrors.ustc.edu.cn/ub…...
flutter播放rtmp视频
安装 dependencies:fijkplayer: ^0.11.0使用方法 import package:fijkplayer/fijkplayer.dart; import package:flutter/material.dart;class RtmpPlayerPage extends StatefulWidget {const RtmpPlayerPage({super.key});overrideState<RtmpPlayerPage> createState()…...
stm32 - 中断
stm32 - 中断 概念中断向量表NVIC 嵌套中断向量控制器优先级 中断EXTI概念基本结构例子- 对射式红外传感器计次例子 - 旋转编码器 概念 stm32 支持的中断资源(都属于外设) EXTITIMADCUSARtSPII2C stm32支持的中断 内核中断 外设中断 中断通道与优先级 一…...
【洛谷 P1216】[USACO1.5] [IOI1994]数字三角形 Number Triangles 题解(动态规划)
[USACO1.5] [IOI1994]数字三角形 Number Triangles 题目描述 观察下面的数字金字塔。 写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。 在上面的样例中,从 7 → 3 → 8 →…...
十四天学会C++之第四天(面向对象编程基础)
类和对象是什么? 在C中,类是一种用户定义的数据类型,它可以包含数据成员(也就是属性)和成员函数(也就是方法)。类是一种模板或蓝图,用于创建具体的对象。 对象是类的实例ÿ…...
复习Day09:哈希表part02:141.环形链表、142. 环形链表II、454.四数相加II、383赎金信
之前的blog:https://blog.csdn.net/weixin_43303286/article/details/131765317 我用的方法是在leetcode再过一遍例题,明显会的就复制粘贴,之前没写出来就重写,然后从拓展题目中找题目来写。辅以Labuladong的文章看。然后刷题不用…...
Internet通过TCP/IP协议可以实现多个网络的无缝连接
Internet通过TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)协议实现多个网络的无缝连接。 TCP/IP是Internet的基础通信协议套件,它定义了数据如何在不同网络之间传输和路由,使得…...
互联网Java工程师面试题·Dubbo 篇·第二弹
目录 18、Dubbo 用到哪些设计模式? 19、Dubbo 配置文件是如何加载到 Spring 中的? 20、Dubbo SPI 和 Java SPI 区别? 21、Dubbo 支持分布式事务吗? 22、Dubbo 可以对结果进行缓存吗? 23、服务上线怎么兼容旧版本&…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
针对药品仓库的效期管理问题,如何利用WMS系统“破局”
案例: 某医药分销企业,主要经营各类药品的批发与零售。由于药品的特殊性,效期管理至关重要,但该企业一直面临效期问题的困扰。在未使用WMS系统之前,其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...
