首页 > 其他分享 >Matplotlib 绘制多图

Matplotlib 绘制多图

时间:2023-08-20 13:02:40浏览次数:43  
标签:subplot plt True 子图 subplots 多图 Matplotlib np 绘制

Matplotlib 绘制多图

我们可以使用 pyplot 中的 subplot() 和 subplots() 方法来绘制多个子图。 subplot() 方法在绘图时需要指定位置,subplots() 方法可以一次生成多个,在调用时只需要调用生成对象的 ax 即可。

1、subplot

subplot(nrows, ncols, index, **kwargs)
subplot(pos, **kwargs)
subplot(**kwargs)
subplot(ax)

以上函数将整个绘图区域分成 nrows 行和 ncols 列,然后从左到右,从上到下的顺序对每个子区域进行编号 1...N ,左上的子区域的编号为 1、右下的区域编号为 N,编号可以通过参数 index 来设置。

设置 numRows = 1,numCols = 2,就是将图表绘制成 1x2 的图片区域, 对应的坐标为:(1, 1), (1, 2) plotNum = 1, 表示的坐标为(1, 1), 即第一行第一列的子图。 plotNum = 2, 表示的坐标为(1, 2), 即第一行第二列的子图。

可以使用 suptitle函数设置公共的标题 注意是sup(超级),也就是父级标题

import matplotlib.pyplot as plt

import numpy as np

#plot1
x1=np.array([1,2,3,4,5])
y1=np.array([1,4,9,16,25])
plt.subplot(1,2,1)
plt.plot(x1,y1)
plt.title('plot1')

#plot2
x2=np.array([1,4,9,16,25])
y2=np.array([1,2,3,4,5])
plt.subplot(1,2,2)
plt.plot(x2,y2)
plt.title('plot2')

plt.suptitle('subplot')#总标题suptitle
plt.show()#最后调用show方法

Matplotlib 绘制多图_数组

2、subplots()

subplots() 方法语法格式如下:

matplotlib.pyplot.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 轴是否共享属性,默认为 false,可设置为 'none'、'all'、'row' 或 'col'。 False 或 none 每个子图的 x 轴或 y 轴都是独立的,True 或 'all':所有子图共享 x 轴或 y 轴,'row' 设置每个子图行共享一个 x 轴或 y 轴,'col':设置每个子图列共享一个 x 轴或 y 轴。
  • squeeze:布尔值,默认为 True,表示额外的维度从返回的 Axes(轴)对象中挤出,对于 N1 或 1N 个子图,返回一个 1 维数组,对于 N*M,N>1 和 M>1 返回一个 2 维数组。如果设置为 False,则不进行挤压操作,返回一个元素为 Axes 实例的2维数组,即使它最终是1x1。
  • subplot_kw:可选,字典类型。把字典的关键字传递给 add_subplot() 来创建每个子图。
  • gridspec_kw:可选,字典类型。把字典的关键字传递给 GridSpec 构造函数创建子图放在网格里(grid)。
  • **fig_kw:把详细的关键字参数传给 figure() 函数。
import matplotlib.pyplot as plt
import numpy as np

# 创建一些测试数据 -- 图1
x = np.linspace(0, 2*np.pi, 400)
y = np.sin(x**2)

# 创建一个画像和子图 -- 图2
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Simple plot')

# 创建两个子图 -- 图3
f, (ax1, ax2) = plt.subplots(1, 2, sharey=True)
ax1.plot(x, y)
ax1.set_title('Sharing Y axis')
ax2.scatter(x, y)

# 创建四个子图 -- 图4
fig, axs = plt.subplots(2, 2, subplot_kw=dict(projection="polar"))
axs[0, 0].plot(x, y)
axs[1, 1].scatter(x, y)

# 共享 x 轴
plt.subplots(2, 2, sharex='col')

# 共享 y 轴
plt.subplots(2, 2, sharey='row')

# 共享 x 轴和 y 轴
plt.subplots(2, 2, sharex='all', sharey='all')

# 这个也是共享 x 轴和 y 轴
plt.subplots(2, 2, sharex=True, sharey=True)

# 创建10 张图,已经存在的则删除
fig, ax = plt.subplots(num=10, clear=True)

plt.show()

标签:subplot,plt,True,子图,subplots,多图,Matplotlib,np,绘制
From: https://blog.51cto.com/u_16131726/7160471

相关文章

  • Matplotlib 散点图、柱形图、饼图绘制
    1、Matplotlib散点图我们可以使用pyplot中的scatter()方法来绘制散点图。scatter()方法语法格式如下:matplotlib.pyplot.scatter(x,y,s=None,c=None,marker=None,cmap=None,norm=None,vmin=None,vmax=None,alpha=None,linewidths=None,*,edgecolors=None,plot......
  • Python通过matplotlib包和gif包生成gif动画
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 防止openlayers在draw绘制状态按shift功能失效
    newDraw({source:this.map.source,type:type,geometryFunction:geometryFunction,condition:()=>{returntrue;},freehandCondition:()=>{returnfalse;}});......
  • some ticks in Matplotlib
    It'simportmatplotlib.pyplotasplt rantherthanimportmatplotlibasplt.Weoftencodeplt.subplot(121),plt.imshow(img),plt.title('Input'),plt.xticks([]),plt.yticks([])plt.subplot(rows,columns,index) plt.subplot(121)means column......
  • Matplotlib设置坐标轴的刻度
    设置坐标轴的刻度以设置x轴的刻度为例xticks(ticks,[labels],**kwargs)参数说明:ticks:数组类型,用于设置X轴刻度间隔[labels]:数组类型,用于设置每个间隔的显示标签**kwargs:用于设置标签字体倾斜度rotation和颜色color等外观属性。不设置刻度时的样式x=np.arange(1,13)y=np.......
  • 【代码快】-验证码-绘制倒图片显示
    整理代码块代码块整理后存储,供后期使用SubshowRandomStr()str=String.Empty'生成随机数字符串DimrAsRandom=NewRandom()Fori=0To4str+=r.Next(0,9).ToStringNext'画字符串DimbmpAsBitmap=NewBitmap(120,......
  • 在指定图片上绘制透明文字
    functionTForm1.DrawPicToStrSave(strFarImg1,strFont1,strSavePath:string):TBitMap;varjp1,jp:TJPEGImage;bmp_t:TBitmap;begintryjp1:=TJPEGImage.Create;jp:=TJPEGImage.Create;bmp_t:=TBitmap.Create;tryjp1.LoadFromFile(strFarImg1);tryif(jp1.Width>......
  • Duilib VerticalLayout 滚动条绘制出错问题
    发现一个奇怪的问题,某个VerticalLayout添加多个控件,滚动条能正常显示但是滚动的时候,绘制出错,如下图: 后来发现xml添加属性bkcolor="#FF0F1415"后正常,应该是缺少bkcolor属性导致绘制异常 记录一下~......
  • QT使用QML实现地图绘制虚线
    QML提供了MapPolyline用于在地图上绘制线段,该线段是实线,因此我使用Canvas自定义绘制的方式在地图上绘制线段,如图:鼠标在地图上点击后,在点击位置添加图标,当有多个图标被添加到地图上后,计算各个图标间的距离,并创建一个新的虚线线段组件,连接两个图标点,显示距离数值。如果对自定义图标......
  • C# 桌面上直接绘制/在屏幕上绘图和清除
    1、名字空间 usingSystem.Runtime.InteropServices;2、API函数申明[DllImport("user32.dll",CharSet=CharSet.Auto,ExactSpelling=true)]publicstaticexternIntPtrGetDesktopWindow();//该函数返回桌面窗口的句柄。[DllImport("user32.dll",EntryPoint="......