数据可视化复习1-Matplotlib简介属性和创建子图

news2025/2/22 3:30:31

1.Matplotlib简介

Matplotlib是一个Python的2D绘图库,它可以在各种平台上以各种硬拷贝格式和交互环境生成具有出版品质的图形。通过Matplotlib,开发者可以仅需要几行代码,便可以生成绘图、直方图、功率谱、条形图、错误图、散点图等。

以下是Matplotlib的一些关键特点:

  1. 易于使用的图形绘制接口:Matplotlib试图让简单的事情变得更简单,让无法实现的事情变得可能实现。你可以通过简单的函数调用绘制出高质量的图形。

  2. 适用于多种操作系统和图形后端:Matplotlib支持各种操作系统上多种图形后端,这意味着它可以与各种环境和应用程序无缝集成。

  3. 丰富的输出格式:Matplotlib支持多种输出格式,包括PNG, PDF, SVG, EPS等,这些格式非常适合于在文档和网页中使用。

  4. 可定制性:Matplotlib具有极高的可定制性,你可以控制图形的大小、分辨率、颜色和样式等。

  5. 强大的社区支持:由于Matplotlib是开源项目,因此它拥有一个活跃的开发者社区,不断地在改进和增强其功能。

2.Matplotlib图形相关属性

这里的Figure相当于一张白纸,Axes为一个个图

一个例子,在这个Figure中有一个两行两列的图

 

画图的两种方式

第一种方式为pyplot API做图

第二种方式为自身面向对象的方式 

简单的做一个折线图

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

plt.plot([1,3,5],[2,4,6])
plt.show()

 

#添加x轴信息
plt.xlabel('X轴')
#添加y轴信息
plt.ylabel('Y轴')

 这里的异常是由于我们当前使用的字体是不支持汉字的,因此我们需要调整一下字体

#查看matplotlib支持的字体
import matplotlib
[f.name for f in matplotlib.font_manager.fontManager.ttflist]

 选择一个支持汉字的即可,我们这里选择宋体再运行

plt.rcParams['font.sans-serif'] = "Songti SC"

# 添加标题 
plt.title('标题')

 

# 设置x轴和y轴间距 
plt.xticks([1,2,3,4,5])
plt.yticks([2,3,4,5,6])

 

在这个axes内在画一条折线,并且给折线添加标注信息

plt.plot([1,3,5],[2,4,6],label='first') #添加第一条折线,标注为 first
plt.plot([1,3,5],[6,6,6],label='second') #添加第二条折线,标注为 second
plt.title('标题')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.xticks([1,2,3,4,5])
plt.yticks([2,3,4,5,6])
plt.legend() # 显示折线的标注,在右下方
plt.show()

 

给线条设置颜色,图线样式,以及标记 

plt.plot([1,3,5],[2,4,6],label='first',color='g',linestyle='-.',marker='*')

其中

 

3.子图的布局

子图就是在一个figure图像中会有多个axes;其中每个子图用行列以及第几个(从1开始)作为坐标

定位一个子图的方法,就是找到子图对应的下标

 

在这种情况下有三个子图;

第一个子图占了两个位置,确定第一个子图的坐标要站在第一个子图角度去看待,那么也就是有1行,两列,所以它的下标为(1,2,1)

第二个子图,站在第二个子图角度看一共有两行两列,所以它的下标为(2,2,2)

第三个子图(2,2,4),因为站在第三个子图角度依然是有两行两列,其中index为4,因为站在这个角度,1和3合并了

所以理解子图位置一定要站在自身角度看待整个全局

【自己理解分析】,一般情况下是分布对称的

 

4.创建子图

 

add_subplot添加子图

add_subplot(self, *args, **kwargs)[source]

在 Matplotlib 中,add_subplot 函数是用于在图表中添加子图的。这个函数通常与 plt.subplot 函数一起使用,后者用于创建一个新的子图并将其添加到当前的图表中。

参数:

  • *args: 三个整数参数,分别代表子图在 rowscolsnum 位置。例如,plt.subplot(2, 2, 1) 将添加一个位于 2x2 子图网格中的第一个子图。

  • **kwargs: 关键字参数,用于设置子图的属性,例如 plt.subplot(1, 1, 1, frameon=False) 将创建一个没有边框的子图。

返回值:

add_subplot 函数返回一个 Axes 对象,该对象代表子图。通过这个对象,您可以进一步设置子图的属性,例如标题、坐标轴标签、网格等。

【示例】

# 使用oop方式
fig = plt.figure();
# 创建第一个子图
ax1 = fig.add_subplot(2,2,1)
# 创建第二个子图
ax2 = fig.add_subplot(2,2,2)
# 创建第三个子图
ax3 = fig.add_subplot(2,2,3)
# 创建第四个子图
ax4 = fig.add_subplot(2,2,4)

 

# 给子图添加标题
# 注意这里是oop方式,使用set_title
ax1.set_title('first')

 

# 使用pyplot 添加子图
ax1 = plt.subplot(2,2,1)
ax2 = plt.subplot(2,2,2)
ax3 = plt.subplot(2,2,3)
ax4 = plt.subplot(2,2,4)
ax1.set_title('first') # 给第一个子图添加标题
plt.title('test')# 默认添加给最新的子图标题

 

addsubplots添加子图

# 使用oop 方式添加子图
fig = plt.figure()
axes = fig.subplots(2,3) # 创建两行三列子图 返回的axes是一个数组
#通过数组下标,可以对对应的子图进行操作
axes[0][0].set_title('first')
axes[0,2].set_title('third')

 

# 使用pyplot api添加子图
fig,axes = plt.subplots(2,3) # 返回的对象是figure 和 axes
axes[0,0].set_title('first')
axes[1,2].set_title('last')

x = [1,2,3,4,5]
y = [x**2 for x in x]
axes[1,2].plot(x,y) # 对最后的一个子图进行绘制
plt.show()

 

总结

绘制子图有两种方式,第一种是使用面向对象API,第二种是使用pyplotAPI

使用add_subplots是添加一个绘制一个

使用subplots是事先知道要绘制几个子图

使用函数的时候一定要分区别是哪个方式和使用哪个函数,


 

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

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

相关文章

WebStorm 2024.3/IntelliJ IDEA 2024.3出现elementUI提示未知 HTML 标记、组件引用爆红等问题处理

WebStorm 2024.3/IntelliJ IDEA 2024.3出现elementUI提示未知 HTML 标记、组件引用爆红等问题处理 1. 标题识别elementUI组件爆红 这个原因是: 在官网说明里,才版本2024.1开始,默认启用的 Vue Language Server,但是在 Vue 2 项目…

如何安全删除 Linux 用户帐户和主目录 ?

Linux 以其健壮性和灵活性而闻名,是全球服务器和桌面的首选。管理用户帐户是系统管理的一个基本方面,包括创建、修改和删除用户帐户及其相关数据。本指南全面概述了如何在 Linux 中安全地删除用户帐户及其主目录,以确保系统的安全性和完整性。…

如何利用ros搭建虚拟场景通过仿真机器人完成一次简单的SLAM建图、导航规划(超简单)?——学习来源:机器人工匠阿杰

一:什么是SLAM,SLAM和导航规划又有什么关系? SLAM(Simultaneous Localization and Mapping,即同时定位与建图)是一种在未知或动态环境中自行驶的重要技术。主要通过设备上的传感器(如激光雷达、…

shell脚本(完结)

声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址:shell编程(完结)_哔哩哔哩_bilibili 本文主要讲解不同shell脚本中的相互调用以及输入输出重定向操作。 一、不同脚本之间…

禁用达梦DEM的agent

agent占用内存较多,实际没什么使用,考虑停止agent 应该切换到root执行停止 cd /dm/dmdbms/tool/dmagent/service/ ./DmAgentService stop禁用

使用ChatGPT生成和优化电子商务用户需求规格说明书

在电子商务项目开发中,用户需求规格说明书(User Requirement Specification, URS)是团队沟通与项目成功的基石。然而,面对复杂多变的需求,如何快速生成清晰、完整且具备说服力的文档?这正是AI工具的用武之地…

产品研发管理和研发项目管理的区别是什么

产品研发管理与研发项目管理有显著的区别,主要体现在管理范围、目标导向和执行方法上。产品研发管理侧重于产品生命周期的规划与执行,强调产品的创新性和市场需求对接,而研发项目管理则更注重具体项目的执行过程,聚焦项目时间、成…

摆烂仙君传——深度学习秘境奇缘

第一章:深度学习秘境 在修仙界与科技交织的边缘,八荒六合九天无上摆烂仙君在其高科技修炼室中感应到一股神秘的召唤。这股力量似乎与他的灵魂产生了共鸣,引导他前往传说中的深度学习秘境。在那里,古老的仙法与前沿的算法交织&…

【FPGA开发】Vivado自定义封装IP核,绑定总线

支持单个文件的封装、整个工程的封装,这里用单个文件举例。 在文件工程目录下,自建一个文件夹,里面放上需要封装的verilog文件。 选择第三个,指定路径封装,找到文件所在目录 取个名,选择封装IP的路径 会…

【CS61A 2024秋】Python入门课,全过程记录P2(Week3开始,更新中2024/11/24)

文章目录 关于基本介绍👋Week 3Mon Environments阅读材料Lab 02: Higher-Order Functions, Lambda ExpressionsQ1: WWPD: The Truth Will PrevailQ2: WWPD: Higher-Order FunctionsQ3: WWPD: Lambda 关于 个人博客,里面偶尔更新,最近比较忙。…

在Linux下配置gitee与Github的远程仓库

目录 前言 云服务器下载git 检测是否下载成功git Linux下配置gitee远程仓库 代码提交演示 git三板斧 Linux下配置Github远程仓库 最后的提醒 前言 那么本篇文章将是在,你已经创建了本地仓库的基础上,在Linux下配置gitee的远程仓库的步骤&#xff…

Mac配置maven环境及在IDEA中配置Maven

Mac配置maven环境及在IDEA中配置Maven 1. 介绍 Maven是一款广泛用于Java等JVM语言项目的工具,它以项目对象模型(POM)为基础进行项目管理,通过POM文件来定义项目信息和依赖关系。同时,它也是构建自动化工具&#xff0…

硬中断关闭后的堆栈抓取方法

一、背景 性能和稳定性是一个计算机工程里的一个永恒的主题。其中尤其稳定性这块的问题发现和问题分析及问题解决就依赖合适的对系统的观测的手段,帮助我们发现问题,识别问题原因最后才能解决问题。稳定性问题里尤其底层问题里,除了panic问题…

STL关联式容器之hashtable

hashtable的桶子与节点 下图为开链法(separate chaining)完成hashtable的图形表述。为了剖析SGI STL源码,我们遵循SGI的命名,称hash table表格内的元素为桶(bucket),此名称的大约意义是,表格内的每个单元,涵盖的不只是个节点(元素…

基于python的长津湖评论数据分析与可视化,使用是svm情感分析建模

引言 研究背景及意义 上世纪初开始,中国电影就以自己独有的姿态登上了世界电影史的舞台。中国电影作为国家文化和思想观念的反映与延伸,能够增强文化自信,在文化输出方面有着极其重要的作用1[1]。 改革开放以来,随着生产力的提高…

阿里云oss转发上线-实现不出网钓鱼

本地实现阿里云oss转发上线,全部代码在文末,代码存在冗余 实战环境 被钓鱼机器不出网只可访问内部网络包含集团oss 实战思路 若将我们的shellcode文件上传到集团oss上仍无法上线,那么就利用oss做中转使用本地转发进行上线,先发送…

预测未来 | MATLAB实现Transformer时间序列预测未来

预测未来 | MATLAB实现Transformer时间序列预测未来 预测效果 基本介绍 1.Matlab实现Transformer时间序列预测未来; 2.运行环境Matlab2023b及以上,data为数据集,单变量时间序列预测; 3.递归预测未来数据,可以控制预…

局域网与广域网:探索网络的规模与奥秘(3/10)

一、局域网的特点 局域网覆盖有限的地理范围,通常在几公里以内,具有实现资源共享、服务共享、维护简单、组网开销低等特点,主要传输介质为双绞线,并使用少量的光纤。 局域网一般是方圆几千米以内的区域网络,其特点丰富…

可视化建模与UML《协作图实验报告》

有些鸟儿毕竟是关不住的。 一、实验目的: 1、熟悉协作图的构件事物。 2、掌握协作图的绘制方法。 二、实验环境: window7 | 10 | 11 EA15 三、实验内容: 下面列出了打印文件时的工作流: 用户通过计算机指定要打印的文件。(2)打…

docker搭建私有的仓库

docker搭建私有仓库 一、为什么要搭建私有的仓库? 因为在国内,访问:https://hub.docker.com/ 会出现无法访问页面。。。。(已经使用了魔法) 当然现在也有一些国内的镜像管理网站,比如网易云镜像服务、Dao…