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、服务上线怎么兼容旧版本&…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
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…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅
目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...
面试高频问题
文章目录 🚀 消息队列核心技术揭秘:从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"?性能背后的秘密1.1 顺序写入与零拷贝:性能的双引擎1.2 分区并行:数据的"八车道高速公路"1.3 页缓存与批量处理…...
