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、服务上线怎么兼容旧版本&…...

(c语言)经典bug
#include<stdio.h> //经典bug int main() { int i 0; int arr[10] {1,2,3,4,5,6,7,8,9,10}; for (i 0; i < 12; i) //越界访问 { arr[i] 0; printf("hehe\n"); } return 0; } 注:输出结果为死循…...

用于工业物联网和自动化的 Apache Kafka、KSQL 和 Apache PLC4
由于单一系统和专有协议,数据集成和处理是工业物联网(IIoT,又名工业 4.0 或自动化工业)中的巨大挑战。Apache Kafka、其生态系统(Kafka Connect、KSQL)和 Apache PLC4X 是以可扩展、可靠和灵活的方式实现端…...

1.1.1开发基础-硬件-万用表
1 万用表 万用表又叫多用表、三用表、复用表,是一种多功能、多量程的测量仪表,一般万用表可测量直流电流、直流电压、交流电压、电阻和音频电平等,有的还可以测交流电流、电容量、电感量及半导体的一些参数,是最常用、最简单的测试设备。 万用表是一种多功能多量程的便…...

Mysql内置函数、复合查询和内外连笔记
目录 一、mysql内置函数 1.1.日期函数 1.2.字符串函数 1.3.数学函数 1.4.其他函数 二、复合查询 2.2 自连接 2.3 子查询 2.3.1单行自查询 2.3.2 多行子查询 2.3.3 多列子查询 2.3.4在from子句中使用子查询 2.3.5合并查询 三、表的内连和外连 3.1内连接 3.2外连接…...

【VUE·疑难问题】定义 table 中每行的高度(使用 element-UI)
一、如何定义 table 中每一行的 height ? 1.table例子 <!-- 二、table --><div style"overflow: hidden;display: block;height: 68vh;width: 100%;"><el-table stripe show-header style"width: 100%" :data"tableData&q…...

【重拾C语言】四、循环程序设计(后判断条件循环、先判断条件循环、多重循环;典例:计算平均成绩、打印素数、百钱百鸡问题)
目录 前言 四、循环程序设计 4.1 计算平均成绩——循环程序 4.1.1 后判断条件的循环 a. 语法 b. 典例 4.1.2 先判断条件的循环 a. 语法 b. 典例 4.1.3 for语句 a. 语法 b. 典例 4.2 计算全班每人平均成绩—多重循环 4.2.1 打印100以内素数 4.2.2 百钱百…...

Linux 安装 Gitlab
1、到官网下载Gitlab安装包 (如果是Centos,到el目录下载)。下载GitLab 2、安装依赖软件 sudo yum install -y policycoreutils-python3、安装gitlab sudo rpm -i gitlab-jh-16.3.4-jh.0.el7.x86_64.rpm 4、修改 gitlab.rb sudo vi /etc/gitlab/gitlab.rb 5、g…...

stm32-SPI协议
SPI协议详解(图文并茂超详细) SPI通讯协议 于是我们想有没有更好一点的串行通讯方式;相比较于UART,SPI的工作方式略有不同。 SPI是一个同步的数据总线,也就是说它是用单独的数据线和一个单独的时钟信号来保证发送端和…...

想要精通算法和SQL的成长之路 - 并查集的运用和案例(省份数量)
想要精通算法和SQL的成长之路 - 并查集的运用 前言一. 并查集的使用和模板1.1 初始化1.2 find 查找函数1.3 union 合并集合1.4 connected 判断相连性1.5 完整代码 二. 运用案例 - 省份数量 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 并查集的使用和模板 先说一下并查集…...

解决内网拉取企微会话存档代理问题的一种办法
问题:客户的服务都是内网的,不能直接访问外网;访问外网的话需要走kong网关才能出去。 会话存档官网说可以使用socket5、http方式拉取会话存档;我这边尝试了直接使用kong网关的ip和端口配置进去,是访问不了的 我后面就…...