数据可视化-----子图的绘制及坐标轴的共享

目录

绘制固定区域的子图

(一)、绘制单子图

subplot()函数

Jupyter Notebook的绘图模式

(二)、多子图

subplots()--可以在规划好的所有区域中一次绘制多个子图

(三)、跨行跨列

subplot2grid()---将整个画布规划成非等分布局的区域,并可在选中的某个区域中绘制单个子图 


绘制固定区域的子图

matplotlib可以将整个画布规划成等分布局的m*n(行*列)的矩阵区域,并按照先行后列的方式对每个区域进行编号(编号从1开始),之后在选中的某个或某些区域中绘制单个或多个子图。

(一)、绘制单子图

subplot()函数

subplot(nrows, ncols, index, projection, polar, sharex, sharey, label, **kwargs)

nrows:表示规划区域的行数。

ncols:表示规划区域的列数。

index:表示选择区域的索引,默认从1开始编号。

projection:表示子图的投影类型。

polar:表示是否使用极坐标,默认值为False。

若参数polar设为True,则作用等同于projection='polar'。

参数nrows、ncols、index既支持单独传参,也支持以一个3位整数(每位整数必须小于10)的形式传参。

subplot()函数会返回一个 Axes类的子类SubplotBase的对象。 Figure类对象可以使用add_subplot()方法绘制单子图,此方式与subplot()函数的作用是等价的。

Jupyter Notebook的绘图模式

控制台绘图

%matplotlib inline

弹出窗绘图

%matplotlib auto
//或
%matplotlib notebook
%matplotlib auto
#%matplotlib inline
import matplotlib.pyplot as plt
#3*2,区域6
ax_one = plt.subplot(335)
ax_one.scatter([500,200,850,400,200,700],[2,7,10,12,16,28])#折线图
#3*1,区域2
ax_two = plt.subplot(322)
ax_two.pie([500,200,850,400,200,700])#饼图
ax_two = plt.subplot(313)
ax_two.plot([500,200,850,400,200,700])#这里标注为饼图有误,应为折线图
plt.show()

(二)、多子图

subplots()--可以在规划好的所有区域中一次绘制多个子图

subplots(nrows=1,ncols=1,sharex=False,sharey=False,squeeze=True,subplot_kw=None,gridspec_kw=None,**fig_kw)

nrows:表示规划区域的行数,默认为1。 ncols:表示规划区域的列数,默认为1。 sharex, sharey:表示是否共享子图的x轴或y轴。 (Squeeze表示是否返回压缩的Axes对象;gridspec_kw表示用于控制区域结构属性的字典) 

import matplotlib.pyplot as plt# 创建 3x3 的子图布局
fig, ax_one = plt.subplots(3, 3)
# 在 (1, 1) 位置的子图绘制散点图
ax_one[1, 1].scatter([500, 200, 850, 400, 200, 700], [2, 7, 10, 12, 16, 28])
# 在 (1, 0) 位置的子图绘制饼图
ax_one[1, 0].pie([500, 200, 850, 400, 200, 700])
# 在 (0, 0) 位置的子图绘制折线图
ax_one[0, 0].plot([500, 200, 850, 400, 200, 700])
# 显示图形
plt.show()   

(三)、跨行跨列

subplot2grid()---将整个画布规划成非等分布局的区域,并可在选中的某个区域中绘制单个子图 

subplot2grid(shape, loc, rowspan=1, colspan=1, fig=None, **kwargs)

shape:表示规划的区域结构,该参数接收一个包含两个整型数据的元组,元组中第1个元素表示规划区域的行数,第2个元素代表规划区域的列数。

loc:表示选择区域的位置,该参数接收一个包含两个整型数据的元组,元组中第1个元素表示子图所在的行数(行数从0开始),第2个元素表示子图所在的列数(列数从0开始)。 r

owspan:表示向下跨越的行数,默认为1。

colspan:表示向右跨越的列数,默认为1。

fig:表示放置子图的画布,默认当前画布。 

%matplotlib auto
import matplotlib.pyplot as plt
#2*3,第0行第2列区域中绘制子图
ax1=plt.subplot2grid((2,3),(0,2))
ax1.scatter([1,2,3,4,5], [1,2,3,4,5])#散点图
#2*3,第1行第1~2列区域绘制子图
ax2= plt.subplot2grid((2,3),(1,1),colspan=2)
ax2.pie([1,2,3,4,5])#饼图
plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/83207.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Qt6 + MuPDF在 Arm IMX6ULL运行的PDF浏览器——MuPDF Adapter文档

项目地址:总项目Charliechen114514/CCIMXDesktop: This is a Qt Written Desktop with base GUI Utilities 本子项目地址:CCIMXDesktop/extern_app/pdfReader at main Charliechen114514/CCIMXDesktop 前言 这个部分说的是Mupdf_adaper下的文档的工…

Linux 防火墙 firewalld 实战配置教程!

最近工作上处理了很多关系配置服务器防火墙的操作,于是想写一篇理论与实践并存的文章,在这里分享给大家,希望对您有所帮助! 主要包括以下几部分内容: 防火墙概述 firewalld原理框架 与iptables的异同点 firewalld常…

C#发送文件到蓝牙设备

测试环境: visual studio 2022 win11笔记本电脑,具有蓝牙功能 .net6控制台 测试步骤如下: 1 新增名为BluetoothDemo控制台项目 2 通过nuget安装InTheHand.Net.Bluetooth,版本选择4.2.1和安装InTheHand.Net.Obex,版…

初识 Pandas:Python 数据分析的利器

在数据分析、数据清洗和可视化等领域,Python 无疑是最受欢迎的语言之一,而在 Python 的数据处理生态中,Pandas 是最核心、最基础的库之一。如果你接触数据分析、机器学习、金融建模,或者只是想处理一些 Excel 表格,那么…

SpringBoot项目使用POI-TL动态生成Word文档

近期项目工作需要动态生成Word文档的需求,特意调研了动态生成Word的技术方案。主要有以下两种: 第一种是FreeMarker模板来进行填充;第二种是POI-TL技术使用Word模板来进行填充; 以下是关于POI-TL的官方介绍 重点关注&#xff1…

fakeroot 在没有超级用户权限的情况下模拟文件系统的超级用户行为

fakeroot 是一个在 Linux 环境中使用的工具,它允许用户在没有超级用户权限的情况下模拟文件系统的超级用户行为。它是一个在 Linux 环境中广泛使用的工具,通常包含在大多数 Linux 发行版的软件仓库中。‌ 主要功能 ‌模拟 root 权限‌:fake…

Spring Spring Boot 常用注解整理

Spring & Spring Boot 常用注解整理 先理解核心概念:什么是注解(Annotation)?第一部分:IOC(控制反转)和 DI(依赖注入)1. Component2. Service, Repository, Controll…

AIGC与数字媒体实验室解决方案分享

第1部分 概述 1.1 建设目标 1.深度融合AIGC技术,培养能够驾驭新质生产力的数字媒体人才 通过引入前沿的AIGC技术,确保学生能够接触到最先进的人工智能应用。教学内容理论和实践结合,让学生在实际操作中熟练掌握AIGC工具,生成高…

讯联云库项目开发日志(二)AOP参数拦截

目录 利用AOP实现参数拦截: 一、​​HTTP请求进入Controller​(发送邮件验证码) 二、AOP切面触发 1. 切面拦截(GlobalOperactionAspect.class) method.getAnnotation()​​ null interceptor 判断​​ 2.参数校验注解 3. 参…

用OBD部署OceanBase社区版的避坑指南

以下是用OBD黑屏部署 OceanBase社区版时容易碰到的几个问题及解决思路,供大家参考。 一、 遇坑步骤:用yaml文件部署集群: obd cluster deploy obtest -c mini-single-example.yaml 报错: Package oceanbase-ce-4.2.1.8-108000…

无锡哲讯科技:引领芯片封装SAP系统的智能化革命

芯片封装行业的数字化转型 在全球半导体产业高速发展的今天,芯片封装作为产业链的关键环节,直接影响着芯片的性能、可靠性和成本。随着5G、人工智能、物联网等技术的普及,市场对芯片的需求激增,封装企业面临着效率提升、良率优…

从海洋生物找灵感:造个机器人RoboPteropod,它能在水下干啥?

大家好!在如今人类对水下环境探索不断深入的时代,从水下考古到珊瑚礁考察,各种任务都离不开水下机器人的助力。但传统水下机器人尺寸较大,在狭窄的水下空间施展不开。今天,我们就来认识一款受海洋小生物启发而设计的仿…

区块链blog1__合作与信任

🍂我们的世界 🌿不是孤立的,而是网络化的 如果是单独孤立的系统,无需共识,而我们的社会是网络结构,即结点间不是孤立的 🌿网络化的原因 而目前并未发现这样的理想孤立系统,即现实中…

Linux服务之lvs+keepalived nginx+keepalived负载均衡实例解析

目录 一.LVSKeepAlived高可用负载均衡集群的部署 二.NginxKeepAlived高可用负载均衡集群的部署 一.LVSKeepAlived高可用负载均衡集群的部署 实验环境 主keepalived:192.168.181.10 lvs (7-1) 备keepalived:192.168.181.10…

50天50个小项目 (Vue3 + Tailwindcss V4) ✨ |搭建项目框架

🖤 一个专注于「Vue3 TailwindCSS」的 50 天极简开发挑战,探索组件边界,打磨技术锋芒。 🎉 欢迎来到 50 个小项目的第一天!今天我们将从零开始搭建一个 Vue3 项目,并引入 Tailwind CSS v4,为后…

Android 中 网络图片加载库 Glide 简介

Glide 是一个功能强大且广泛使用的图片加载库,适用于 Android 应用程序。它提供了简单易用的 API,用于从网络、本地存储或资源中加载图片,并支持图片的缓存、转换、占位图、动画等功能。 一、Glide 主要特点 简单易用 提供简洁的 API,一行代码即可加载图片。 支持多种数据…

07 web 自动化之 Unittest 应用:测试报告装饰器断言

文章目录 一、常见的第三方库结合 unittest 生产 html 格式测试报告1、HtmlTestRunner2、BeatifulReport 二、装饰器 unittest.skip 强制跳过&条件跳过三、unittest的常用断言方法 一、常见的第三方库结合 unittest 生产 html 格式测试报告 1、HtmlTestRunner 官网下载 …

【Python 面向对象】

Python 的面向对象编程(OOP)通过类(Class)和对象(Object)实现代码结构化,支持封装、继承和多态三大特性。以下是系统化指南: 一、类与对象基础 1. 定义类 class Dog:# 类属性&…

STM32F103_LL库+寄存器学习笔记23 - PWM波形输出及软件方式调整周期与占空比

导言 脉宽调制(PWM)是 STM32 定时器最常用的输出模式之一,广泛应用于电机驱动、LED 调光、伺服控制和功率管理等场景。本篇文章将以 TIM5 为例,从寄存器层面深入剖析 PWM 输出的原理与实现步骤。通过本篇博客,你不仅能…

堆(Heap)

1. 堆(Heap) 1.1. Python实现堆的插入、堆顶删除和排序 class MaxHeap:def __init__(self):# 初始化空堆,使用列表表示self.heap []def insert(self, val):# 插入元素并执行上浮self.heap.append(val)self._sift_up(len(self.heap) - 1)de…