首页 > 其他分享 >matplotlib绘图与子图

matplotlib绘图与子图

时间:2023-07-25 21:56:01浏览次数:58  
标签:subplot plt figure axes matplotlib add 绘图 fig 与子

matplotlib绘图与子图

目录

绘图基础

  • 画布figure, 代表了整幅图,通过包括底图、axes对象以及其它图元素的方式,囊括了全部图元素。

  • axes对象(图形区)总是从属于.figure类对象,须创建在figure类对象中。

  • axes对象(图形区),实现了这张图的数据区内容,是制图表达的核心内容。

  • 一个figure对象,可以包含多个axes对象

  • figure 可以添加很多axes对象 add_axes添加一个axes对象,add_subfigure添加子图,add_subplots添加一个或一组axes对象

  • 画纸上最上方是标题title,用来给图形起名字

  • 坐标轴Axis,横轴叫x坐标轴xlabel,纵轴叫y坐标轴ylabel

  • 图例Legend, 代表图形里的内容

  • 网格Grid, 图形中的虚线,True显示网格

  • 点 Markers:表示点的形状。

plt.figure

plt.figure 初始化画板,设置窗口尺寸大小,分辨率

fig = plt.figure(figsize=(a, b),dpi=100)  

输入  a为图形的宽, b为图形的高,单位为英寸。  dpi 分辨率
返回  figure 对象

fig.subplots

fig.subplots 添加一组子图

axs = fig.subplots(nrows=1, ncols=1,*arg,**kwargs)

输入 nrows=1, ncols=1 分别是行和列
返回 axes的对象列表   [axes]
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(figsize=[9,6],dpi=100) #  创建画布,figure
axs = fig.subplots(1,2)         #  设置axs分布

x=np.arange(0,5,0.2)
y1=np.sin(x)
y2=np.e**(0.4*x)-2
y3=np.cos(x)
y4=0.5*x
print(x)

axs[0].plot(x,y1,label="sin")
axs[0].plot(x,y2,label='exp')

axs[1].plot(x,y3,'--',label='cos')
axs[1].plot(x,y4,'-.',label="linear")

axs[0].legend()
axs[1].legend()

axs[0].grid()

plt.show()
img

fig.add_subplot

fig.add_subplot 添加一个子图

ax = fig.add_subplot(nrows, ncols, index)

输入 nrows, ncols, index 行、列、索引
返回 axes的对象
axs = fig.subplots(1,2)         #  设置axs分布   
等价于
axs1 = fig.add_subplot(1, 2, 1)
axs2 = fig.add_subplot(1, 2, 2)
import numpy as np
import matplotlib.pyplot as plt

fig=plt.figure(figsize=(8,8),dpi=80)
# 可从图中看到,我们的画布是分为2x2的区域
ax1=fig.add_subplot(2,2,1)     
ax1.plot([1,2,3,4],[1,2,3,4])
ax2=fig.add_subplot(2,2,2)
ax2.plot([1,2,3,4],[2,2,3,4])
ax3=fig.add_subplot(2,2,3)
ax3.plot([1,2,3,4],[1,2,2,4])
ax4=fig.add_subplot(2,2,4)
ax4.plot([1,2,3,4],[1,2,3,3])

plt.show()
img

fig.add_axes

fig.add_axes自由绘制子图

ax = fig.add_axes(left, bottom, width, height)

输入  rect=((left, bottom, width, height))  画图上的坐标
返回  axes的对象

import numpy as np
import matplotlib.pyplot as plt


fig = plt.figure(figsize=[9,6],dpi=90) # 获得figure对象

ax1 = fig.add_axes([0.2, 0.5, 0.2, 0.3],
                   ylim=(-1.2, 1.2))    # 左边20% 底部50% 宽20% 高30%

ax2 = fig.add_axes([0.1, 0.05, 0.8, 0.4],
                   ylim=(-1.2, 1.2)) # 左边10% 底部5% 宽80% 高40%

x = np.linspace(0, 10)
ax1.plot(np.sin(x),'r')
ax2.plot(np.cos(x),'--')

ax1.grid()   # ax1 添加网格
plt.show()
img

缺省和就近原则

缺省是指无主动指明的情况下,系统自动提供的资源。

  • 画图板的缺省是:figure(1)
  • 图形区的缺省是:subplot(111)

就近原则:在每个函数操作时对上一层资源的依赖遵守最近原则,举例如下:

  • subplot()作用在最近使用的画图板上,有可能是缺省的画图板figure(1)。
  • axes()作用在最近使用的画图板上,有可能是缺省的画图板figure(1)。
  • axis()作用在最近使用的图形区上,可能来自subplot、axes等
  • plot()作用在最近使用的图形区上,可能来自subplot、axes等

总结

1、首先创建一个合适大小的画布 figure

2、然后再在画布上设置图形区区对象 **axes ** (只需要一个图像区,可以省略)

3、紧接着分别 在图形区对象 axes 绘制图像和图形,进行独立设置 (只需要一个图像区, 可以直接plot 代替)

4、最后再将 画布 figure 进行展示或者保存

参考资料

https://zhuanlan.zhihu.com/p/585576512

https://matplotlib.org/stable/gallery/index.html#

标签:subplot,plt,figure,axes,matplotlib,add,绘图,fig,与子
From: https://www.cnblogs.com/tian777/p/17581151.html

相关文章

  • Pyplot基本绘图
    Pyplot基本绘图目录Pyplot基本绘图折线图标记大小与颜色标题与标签的定位网格线文字说明柱形图直方图圆饼图散点图颜色表参考资料Pyplot是常用的绘图模块,能很方便让用户绘制2D图表。Pyplot包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改plot():用于绘制......
  • R语言ggplot绘图调整刻度线标签文件的角度
     001、dat<-data.frame(a=1:5,b=1:5)datlibrary(ggplot2)p<-ggplot(data=dat,aes(x=a,y=b))+geom_point()##默认绘图p 002、调整y轴刻度线标签的角度p+theme(axis.text.y=element_text(angle=90,face="bold"))##y轴调整为90度......
  • R语言中ggplot绘图函数 设置绘图边框的间距
     001、dat<-data.frame(a=1:5,b=1:5)datlibrary(ggplot2)p<-ggplot(data=dat,aes(x=a,y=b))+geom_point()##默认边框,绘制散点图p 002、利用theme(plot.margin=unit(c(3,3,3,3),"cm"))设置边距p+theme(plot.margin=unit(c(3,3,3,......
  • 免费的云端软件开发绘图工具
    为您的软件开发项目寻找免费的图表工具。无论您使用的是更正式的方法,如UML还是敏捷方法,visualparadigmonline都是您理想的基于云的环境的绘图工具,但它对于个人使用是完全免费的。它有最广泛的图表种类,提供了200多种不同的图表类型,从UML图表、ERD、不同风格的DFD,如SSADMPeterCoad......
  • AI绘图电脑主机需要什么配置
    AI绘图的出现给设计界带来了很多的便利性,利用stablediffusion这种工具一秒将2D转化成为3D、1分钟做出10张海报图片等。虽然AI绘图工具效率非常高,但是如果经常玩AI绘图的朋友,基本上都经历过这种情况。为了训练一张不错的AI图片,有时候我们需要打开stablediffusion挂机一个多小时......
  • Python Matplotlib绘图笔记(1)
    文章目录1pyplot.figure()语法参数测试figsizefacecoloredgecolorframeon2pyplot.subplot()说明设置所有子图的大标题分别设置每个子图的标题3pyplot.legend()作用设置图例位置设置图例边框设置图例边框颜色设置图例背景颜色设置图例标题4绘制三维图像利用关键字`projection......
  • Origin 2017科研绘图软件下载和安装教程
    Origin是由OriginLab公司开发的一个科学绘图、数据分析软件,支持在MicrosoftWindows下运行。Origin支持各种各样的2D/3D图形。Origin中的数据分析功能包括统计,信号处理,曲线拟合以及峰值分析。Origin中的曲线拟合是采用基于Levernberg-Marquardt算法(LMA)的非线性最小二乘法拟合。Orig......
  • Matplotlib库中,plt.figure()、plt.imshow()、plt.axis()和plt.show()、gca、savefig、
    在Matplotlib库中,plt.figure()、plt.imshow()、plt.axis()和plt.show()是用于绘制和显示图像的常用方法。下面是对每个方法的含义的解释:plt.figure():plt.figure()用于创建一个新的图形对象(Figure),它是绘图的最顶层容器。可以使用该对象进行图形的设置和操作,例如设置图形的大小......
  • Sketch UI绘图设计软件 Sketch 中文 Sketch下载
    Sketch是一款专业的矢量绘图软件,主要用于UI/UX设计和界面原型制作。它在设计师和开发者之间非常受欢迎,因为它提供了丰富的工具和功能,使得设计过程更加高效和流畅。Sketch中文破解版下载 以下是Sketch软件的一些主要特点和功能:矢量绘图:Sketch基于矢量绘图,可以创建高质量的......
  • ZetCode 绘图教程
    ApacheCNZetCode翻译项目译者:飞龙协议:CCBY-NC-SA4.0贡献指南本项目需要校对,欢迎大家提交PullRequest。请您勇敢地去翻译和改进翻译。虽然我们追求卓越,但我们并不要求您做到十全十美,因此请不要担心因为翻译上犯错——在大部分情况下,我们的服务器已经记录所有的翻译,因此您不必......