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

python绘图系统27:matplotlib中平面坐标、极坐标和三维坐标的所有绘图函数

文章目录

    • 绘图函数列表
    • 为DrawType添加这些绘图函数
    • 绘图类别跳转坐标系
    • 坐标
    • 源代码

绘图函数列表

下面整理了几乎所有matplotlib中的绘图函数,及其在不同坐标轴下的表现。

函数类别2Dpolar3D备注
imshow图像X
pcolormesh伪彩图[X,Y,]ZX,Y,Z
plot曲线图x[,y]x[,y]x,y[,z]
scatter散点图x,y/X,Yx,yx,y,[,z]可为任意维度
stem茎叶图x,yx,yx,y[,z]
step阶梯图x,yx,yx,y[,z]
bar条形图x,yx,yx,y[,z]
barh横向条形图x,yx,y
stackplot填充线图x,yx,y
plot_surface曲面图x,y,zx,y必须是网格
plot_wireframe网格图x,y,zx,y必须是网格
plot_trisurf三角面图x,y,zx,y,z是一维数组
errorbar误差线x,y
xerr,yerr
x,y
xerr,yerr
x,y,z
xerr,yerr,zerr
fill_between纵向区间图x,y1,y2x,y1,y2
fill_betweenx横向区间图y, x1, x2x,y1,y2
contour等高线[x,y,]z[x,y,]zx,y,z
contourf填充等高线[x,y,]z[x,y,]zx,y,z
quiver向量场图x,y,u,vx,y,u,vx,y,z,u,v,w
streamplot流场图x,y,u,vx,y,u,v
barbs风场图x,y,u,vx,y,u,v
hist直方图xxx
boxplot箱线图xxx
violinplot小提琴图xx
enventplot信封图xx
hist2d二维直方图x,yx,y
hexbin钻石图x,yx,y
pie饼图xx
tricontour自由等高线x,y,zx,y,zx,y,z
tricontourf自由填充等高线x,y,zx,y,zx,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;是否为分区表&#xff1a…...

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…...

网站强制跳转至国家反诈中心该怎么办?怎么处理?如何解封?

在互联网环境中&#xff0c;网站安全是非常重要的。然而&#xff0c;在实际操作过程中&#xff0c;不少网站可能因内容问题、技术安全漏洞等原因被迫下线甚至跳转至国家反诈骗中心网址。面对这一严峻问题&#xff0c;我们如何有效解决&#xff0c;让网站恢复运行并解除强制跳转…...

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);//此时&#xff0c;服务器已经成功进入监听状态&…...

MacBook 录制电脑内部声音

MacBook 录制电脑内部声音 老妈喜欢跳广场舞&#xff0c;现在广场舞音频下载都收费了&#xff01;没办法&#xff0c;只能自己录歌了&#xff0c;外录有杂音大家也都知道&#xff0c;所以就只能采用内录的方式然后再用 Audition 调整一下音量大小。 一、&#xff08;前置条件&a…...

mysql主从复制和读写分离

在企业应用中&#xff0c;成熟的业务通常数据量都比较大 单台MySQL在安全性、高可用性和高并发方面都无法满足实际的需求 配置多台主从数据库服务器以实现读写分离 所以要做主从服务器&#xff0c;保证安全性 做一写一读服务器&#xff0c;将提升性能 1、什么是读写分离 …...

【计算机网络】网络层-数据平面(学习笔记)

一、网络层提供的服务 1、虚电路服务 通讯前建立虚电路&#xff0c;发送前认为选择路径&#xff0c;所以分组沿着同一条虚电路。 特点&#xff1a;带宽固定 2、数据报服务 数据可能沿着不同路径传输 3、网络层的两个层面 数据层面&#xff1a;源主机到目标主机 控制层面&…...

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 前提 浏览器可以访问百度 如下文章&#xff1a; VMware 中虚拟机没网 2 编辑 输入如下命令&#xff0c;进入换源文件&#xff1a; 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 支持的中断资源&#xff08;都属于外设&#xff09; EXTITIMADCUSARtSPII2C stm32支持的中断 内核中断 外设中断 中断通道与优先级 一…...

【洛谷 P1216】[USACO1.5] [IOI1994]数字三角形 Number Triangles 题解(动态规划)

[USACO1.5] [IOI1994]数字三角形 Number Triangles 题目描述 观察下面的数字金字塔。 写一个程序来查找从最高点到底部任意处结束的路径&#xff0c;使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。 在上面的样例中&#xff0c;从 7 → 3 → 8 →…...

十四天学会C++之第四天(面向对象编程基础)

类和对象是什么&#xff1f; 在C中&#xff0c;类是一种用户定义的数据类型&#xff0c;它可以包含数据成员&#xff08;也就是属性&#xff09;和成员函数&#xff08;也就是方法&#xff09;。类是一种模板或蓝图&#xff0c;用于创建具体的对象。 对象是类的实例&#xff…...

复习Day09:哈希表part02:141.环形链表、142. 环形链表II、454.四数相加II、383赎金信

之前的blog&#xff1a;https://blog.csdn.net/weixin_43303286/article/details/131765317 我用的方法是在leetcode再过一遍例题&#xff0c;明显会的就复制粘贴&#xff0c;之前没写出来就重写&#xff0c;然后从拓展题目中找题目来写。辅以Labuladong的文章看。然后刷题不用…...

Internet通过TCP/IP协议可以实现多个网络的无缝连接

Internet通过TCP/IP&#xff08;Transmission Control Protocol/Internet Protocol&#xff0c;传输控制协议/互联网协议&#xff09;协议实现多个网络的无缝连接。 TCP/IP是Internet的基础通信协议套件&#xff0c;它定义了数据如何在不同网络之间传输和路由&#xff0c;使得…...

互联网Java工程师面试题·Dubbo 篇·第二弹

目录 18、Dubbo 用到哪些设计模式&#xff1f; 19、Dubbo 配置文件是如何加载到 Spring 中的&#xff1f; 20、Dubbo SPI 和 Java SPI 区别&#xff1f; 21、Dubbo 支持分布式事务吗&#xff1f; 22、Dubbo 可以对结果进行缓存吗&#xff1f; 23、服务上线怎么兼容旧版本&…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...