matlab画多个图在同一个窗口,matlab将多个图画在一起
CSDNGitHubpython使用matplotlib:subplot绘制多个子图aderx coding/language/python/matplotlib/subplot
本作品根据知识共享署名-非商业使用-以同样方式共享4.0国际许可协议进行许可。转载请注明出处。
1问题描述matploglib可以画出漂亮的图。有时候,我们希望将一组图表放在一起进行比较。有什么好办法吗?
matplotlib中提供的Subplot可以很好的解决这个问题。
matplotlib下的subplot函数介绍,一个Figure对象可以包含多个子图(轴),使用Subplot()可以快速绘制,其调用形式如下:
plot (numRows,numCols,plot num) 1图表的整个绘图区分为numRows和numcols列。
然后,从左到右、从上到下给每个分区编号,左上分区的编号为1。
PlotNum参数指定创建轴对象的区域。
如果numrows=2,numcols=3,那么整个绘图图表样式就是23的图片区域,用坐标表示如下
(1,1),(1,2),(1,3) (2,1),(2,2),(2,3) 12此时,当plotnum=3时,表示的坐标为(1,3),即第一行第三列的子图。
如果numRows、numCols和plotNum都小于10,可以缩写成整数,例如subplot(323)和subplot(3,2,3)相同。
Subplot在plotNum指定的区域创建一个轴对象。如果新创建的轴与先前创建的轴重叠,先前的轴将被删除。
3例程序3.1规则分为3*3 #!/usr/yqdbd/env python#!encoding=utf-8 import matplotlib import matplotlib . py plot as pltif _ _ name _ _= _ _ main _ _ :for I,color in enumerate( rgby ):PLT . subplot(221 I,axis BG=color)PLT . show()1234567891011
3.2不规则划分但有时我们的划分是不规则的,如以下形式
这个应该怎么分?
将整个表格除以2*2。
前两个很简单,分别是(2,2,1)和(2,2,2)。
但是第三个图呢,它占据了(2,2,3)和(2,2,4)
说明需要再分一次,按照2 * 1分。
前两个数字占据(2,1,1)的位置
因此,第三个图形占据了(2,1,2)的位置。
代码如下,参考matplotlib绘制多个子图——subplot。
#!/usr/yqdbd/env python#!encoding=utf-8 import matplotlib . py plot as pltimport numpy as NP def f(t):返回NP . exp(-t)* NP . cos(2 * NP . pi * t)if _ _ name _ _= _ _ main _ _ :t1=NP . arange(0,5,0.1) t2=np.arange(0,5,0.02)PLT . figure(12)PLT . subplot(221)PLT . plot(t1,f(t1), bo
本作品根据知识共享署名-非商业使用-以同样方式共享4.0国际许可协议进行许可。