首页 > 其他分享 >Matplotlib 设置画布

Matplotlib 设置画布

时间:2024-12-19 09:44:43浏览次数:3  
标签:plot plt figure axes Matplotlib 画布 设置 import 100

首先我们要理解plt, figure和ax三者的关系。

plt是Matplotlib.pyplot的简称,内部的各种API可以理解成是plt作者给用户准备的懒人包,自动定义一个初始绘图环境,开箱即用。缺点是不够灵活。

而figure可以理解成一个桌面,而每个axes就是桌面上的一张张纸或画布。如下图所示,两者是互相包含的关系。而我们最终的图是画在一张张axes上的。一个figure可以包含多张axes。通过分别定义figure和axes,我们可以更精准地控制每张图的参数,画出更复杂、美丽的组图

image

因此,当熟悉以上概念,下面来分不同场景或需求,介绍下建议使用的API

  1. 如果你只是做简单的可视化,画出的图甚至不需要保存,仅仅看一眼,也不关心后续的扩展,使用plt足矣。它等于直接帮你弄来了一个用一张白纸铺满的桌子,直接就可以上手画图。定义一批数据,使用plt.plot()函数绘制曲线,效果如下。
import numpy as np
import matplotlib.pyplot as plt
x = range(-100,100)
y = [i*i for i in x]
plt.plot(x,y)

image

  1. 如果你需要对绘制的图有精准的控制,那么就需要将figure和axes分开定义了,如plt.subplots().代码中分别定义了四个变量:ax11,ax12,ax21,ax22代表四个axes,并分别Plot。这里需要清楚的一点是,plt类中包含的大部分绘图函数,在axes类中也有,例如plt.plot()与ax.plot(), plt.scatter()与ax.scatter()。plt.tight_layout()语句往往用于多axes排版有误的情况(Adjust the padding between and around subplots.)
import numpy as np
import matplotlib.pyplot as plt
x = range(-100,100)
y = [i*i for i in x]
fig,((ax11,ax12),(ax21,ax22)) = plt.subplots(2,2)
ax11.plot(x,y)
ax12.plot(x,y)
ax21.plot(x,y)
ax22.plot(x,y)
plt.tight_layout()

image

  1. 但是按第三条的做法,当我们需要排版大量的子图(axes)时,由于每个子图都要分别定义、调用,工作量会十分冗余。此时比较灵活的是使用add_subplot()。且这种方式可以明确的定义每一步的行为,且可以套用循环,清晰明了。因此在日常工作中,我也常常会采用这种绘图方式。即使仅需要绘制一张图,也可以用add_subplot(1,1,1)来定义,为后续扩展留下空间。
import numpy as np
import matplotlib.pyplot as plt
x = range(-100,100)
y = [i*i for i in x]
fig = plt.figure() #定义figure,后面的axes都是在这张figure上绘制
for i in range(8):
    ax = fig.add_subplot(4,2,i+1) #这里的4,2是固定值,i+1是因为Python默认从0开始数数
    ax.plot(x,y)
plt.tight_layout()

image

标签:plot,plt,figure,axes,Matplotlib,画布,设置,import,100
From: https://www.cnblogs.com/geoli/p/18616424

相关文章

  • 改善方案设置与配置参数达到标准化的统一
    前期开发,直接把图片以数据流形式存储于数据库表中,随着图片上传越来越多,显示于出来时,效率与性能直接受到影响。现在,只能把已经上传的图片,处理为实际图片文件,存在磁盘文件夹里。在转存时,每张图片顺便生成其缩略图,在显示时,先显示缩略图,浏览者想看原图时,再进一步操作。不管是让系统管......
  • 【OO ALV行、列和单元格设置颜色和可编辑属性】
    文章目录概述设置fieldcat设置layout颜色设置颜色值以列为单位以行为单位以单元格为单位可修改属性设置以表单为单位以列为单位以单元格为单位概述OOALV,是指通过面向对象(object-Oriented)的方式实现的ALV输出基本使用原理:通过界面调用,在界面的CustomerContro......
  • Z-BlogPHP 报错“error-9 该文章不存在或设置了权限”,如何解决?
    当您在使用Z-BlogPHP时遇到“error-9该文章不存在或设置了权限”的错误,通常是因为文章的状态被更改或设置了访问权限。以下是一些解决此问题的方法:检查文章状态:确认文章的状态是否为已发布。如果文章被设置为草稿或其他未发布的状态,非作者或管理员账号将无法访问。登录Z......
  • 【matplotlib 库画雷达图】你知道怎么用python画雷达图、蜘蛛网图?对于精度展示、模型
    【matplotlib库画雷达图】你知道怎么用python画雷达图、蜘蛛网图?对于精度展示、模型对比非常重要。附代码及解释。【matplotlib库画雷达图】你知道怎么用python画雷达图、蜘蛛网图?对于精度展示、模型对比非常重要。附代码及解释。文章目录【matplotlib库画雷达图】......
  • 【Python】【数据分析】深入探索 Python 数据可视化:Matplotlib 绘图库完整教程
    目录引言一、什么是Matplotlib?1.1Matplotlib的安装1.2Matplotlib的基本功能二、Matplotlib的基础绘图2.1绘制折线图2.2绘制柱状图2.3绘制散点图2.4绘制饼图三、高级功能与定制3.1设置图表样式3.2使用子图3.3保存图表四、Matplotlib流程图4.1Mermaid流......
  • 『玩转Streamlit』--集成Matplotlib
    Steamlit虽然也自带了一些绘图组件(比如折线图,柱状图和散点图等等),但是都比较简单,和Python传统的可视化库比起来,功能上差了很多。本篇介绍如何在StreamlitApp中使用Matplotlib库来绘图。1.st.pyplot函数st.pyplot函数专门用于在Steamlit应用中显示Matplotlib绘制的图形。这......
  • JAVA-MQ设置动态的过期队列
    在开发场景中,如预约的签到,用户会有不同的预约签到时间,例如;7:00,7:30,8:00那么,对于这种场景,使用如定点轮询查表的方式,一方面时间颗粒度需要严格的控制,另一方面在数据库的记录一多就很浪费性能,所以我们可以考虑使用mq的过期队列来实现功能基于mq的死信队列,首先将信息存活时间......
  • ‌谷歌浏览器跨域设置实现‌的两种方法(推荐方法二)
    方法一:通过快捷方式设置‌老版本Chrome(版本号49之前)‌:右键点击Chrome快捷方式图标,选择“属性”。在目标输入框尾部加上--disable-web-security。点击“应用”并关闭属性页面,重新打开Chrome浏览器。如果出现提示“你使用的是不受支持的命令标记--disable-web-security”,说......
  • HTML中正确设置表格table边框border的三种办法
    HTML中正确设置表格table边框border的三种办法<style>table{width:400px;margin:0auto;border:1pxsolid#000000;border-collapse:collapse;}th,td{border:1pxsolid#000000;text-a......
  • 天虎程序Phone APP下载设置定位失败怎么解决
    天虎程序Phone的APP拨号软件怎么下载呢?首先用浏览器扫描二维码,点击下载,然后按照提示安装就可以,这个非常简单。下载后,点击软件界面按####加拨号连接蓝牙,蓝牙连接好后就可以正常使用了。请联系图片上电话或微心2081003456索取下载phone程序APP定位失败更换APP即可。1:打开APP......