Matlab多个Figure图合成一个Fig
案例:之前跑过的程序 已经生成了多个matlab图,现在需要进行合并到一个图中。
解决方案,利用图像句柄把figure图像中的参数读入到内存中,然后重新subplot绘制。
程序如下:
- clc;clear;
- open(‘./test_1.fig’)
- figure_info=findall(gcf,’type’,'line’);
- xdata1 = get(figure_info,’xdata’);
- ydata1 = get(figure_info,’ydata’);
- color1 = get(figure_info,’color’);
- subNum1 = length(xdata1);
- open(‘./test_2.fig’)
- figure_info=findall(gcf,’type’,'line’);
- xdata2 = get(figure_info,’xdata’);
- ydata2 = get(figure_info,’ydata’);
- color2 = get(figure_info,’color’);
- subNum2 = length(xdata2);
- open(‘./test_3.fig’)
- figure_info=findall(gcf,’type’,'line’);
- xdata3 = get(figure_info,’xdata’);
- ydata3 = get(figure_info,’ydata’);
- color3 = get(figure_info,’color’);
- subNum3 = length(xdata3);
- open(‘./test_4.fig’)
- figure_info=findall(gcf,’type’,'line’);
- xdata4 = get(figure_info,’xdata’);
- ydata4 = get(figure_info,’ydata’);
- color4 = get(figure_info,’color’);
- subNum4 = length(xdata4);
- %%
- subplot(2,2,1)
- for i=subNum1:-1:1
- if length(xdata1{i})==1
- break;
- end
- plot(xdata1{i},ydata1{i},‘.’,’color’,color1{i})
- hold on;
- end
- title(‘(a). K-means (TF-IDF)’)
- set(gca,’xtick’,[]);
- set(gca,’ytick’,[]);
- % box off;
- % axis off;
- subplot(2,2,2)
- for i=subNum2:-1:1
- if length(xdata2{i})==1
- break;
- end
- plot(xdata2{i},ydata2{i},‘.’,’color’,color2{i})
- hold on;
- end
- title(‘(b). Spectral Clustering (best)’)
- set(gca,’xtick’,[]);
- set(gca,’ytick’,[]);
- % box off;
- % axis off;
- subplot(2,2,3)
- for i=subNum3:-1:1
- if length(xdata3{i})==1
- break;
- end
- plot(xdata3{i},ydata3{i},‘.’,’color’,color3{i})
- hold on;
- end
- title(‘(c). Average Embedding (TF)’)
- set(gca,’xtick’,[]);
- set(gca,’ytick’,[]);
- % box off;
- % axis off;
- subplot(2,2,4)
- for i=subNum4:-1:1
- if length(xdata4{i})==1
- break;
- end
- lineH(subNum4-i+1) = plot(xdata4{i},ydata4{i},‘.’,’color’,color4{i});
- hold on;
- end
- title(‘(d). STCC’)
- set(gca,’xtick’,[]);
- set(gca,’ytick’,[]);
- % box off;
- % axis off;
- hL=legend(lineH,{’1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′});
- newPosition = [0.4 0.4 0.2 0.2];
- newUnits = ’normalized’;
- set(hL,’Position’, newPosition,’Units’, newUnits);
合并成单幅图像之后要做的另外一件美观的事情就是调整间距了。。。
可参考http://blog.sina.com.cn/s/blog_7e18707801017pin.html,具体操作如下:
1. 代码实现:
figure(‘Name’,'默认’);
subplot(2,2,1);
subplot(2,2,2);
subplot(2,2,3);
subplot(2,2,4);
figure(‘Name’,'紧凑’);
subplot(‘Position’,[0.02 0.65 0.3 0.3]);
subplot(‘Position’,[0.35 0.65 0.3 0.3]);
subplot(‘Position’,[0.02 0.3 0.3 0.3]);
subplot(‘Position’,[0.35 0.3 0.3 0.3]);
subplot(‘Position’,[left bottom width height]) creates an axes at the position specified by a four-element vector. left, bottom, width, and height are in normalized coordinates in the range from 0.0 to 1.
在由四个归一化坐标规定的位置上建立坐标轴。
src: http://www.ilovematlab.cn/forum.php?mod=viewthread&action=printable&tid=93345
2. 手动调整:
在图上的工具栏中点Tools,Align Distribute Tool,自己设定间距。
注意:1)需要先选中两幅图片,再调整间距;2)一定要用‘shift+click’选中待调整的两幅图片,不可以直接点
其实方式1 是一种非常赞的 版面设计方法,为了能够更加清楚明了的理解 那四个参数,[left,bottom,width,height]是什么意思,我画了一张图给大家,应该可以一目了然:
其中,第一幅图的参数为[0.02, 0.65, 0.3, 0.3]
from: http://jacoxu.com/?p=1595
转载于:https://www.cnblogs.com/GarfieldEr007/p/5342833.html
Matlab多个Figure图合成一个Fig相关推荐
- 将matlab中多幅图合成为一幅图,MATLAB画图之多个图以子图的形式合为一个图
解决问题:已经画好了多个figure,在不重复添加画图程序时,将多个图合为一个图. 通常我们会将各个图单独画出来看效果,但是写文章过程中,经常为了排版等问题,需要将几个图分别以子图的形式合为一个图,这 ...
- matlab如何多幅图统一一个颜色栏,每个图使用多个颜色图【含Matlab源码】
每个图使用多个颜色图!适用于多种类型的对象,不仅适用于图像. 问题:每个图形只有一个颜色图,因此所有图共享相同的颜色图.通常人们想要不同的颜色图. 解决方案:此功能对提供了一种在同一图中使用不同col ...
- Matlab更改Figure图窗的背景色|底色|网格色|黑色白色蓝色红色任意RGB色|重置颜色
Matlab中默认Figure图的背景是白色.窗口背景是灰色,怎么将其改为黑色.白色.蓝色或其他RGB色呢? 附全部测试代码: 1. 正常画图 clc;clear;close all % 画图 I=p ...
- 在MATLAB的figure图中画局部放大的图中图
在MATALB绘图中,有时会遇到这样的情况,需要通过放大figure图的局部,针对细节加以说明.例如:在给定的尺度下有两条或多条曲线难以区别,此时就需要对其进行局部放大来加以区分.参考网上的解决方法1 ...
- R语言使用car包的influencePlot函数将回归分析中的离群点(outlier)、杠杆(leverage)和影响(influence)的信息组合成一个高度信息量丰富的合成图
R语言使用car包的influencePlot函数将回归分析中的离群点(outlier).杠杆(leverage)和影响(influence)的信息组合成一个高度信息量丰富的合成图 目录
- matlab两个图共用一个x轴_SCI论文写作MATLAB出图(2)
接着SCI论文写作MATLAB出图(1)(以下介绍均由出图(1)代替),现在来讲第二部分,曾经也在出图这块走了不少弯路,现在呢,对出图这部分有一些心得,对有需求的同学略尽微薄之力吧.另外,提一嘴,当时 ...
- (MATLAB)多个Excel表合成一个
(MATLAB)多个Excel表合成一个 代码 使用 其他 by HPC_ZY 把多个Excel表合成一个.朋友提出需求,表示手动复制粘贴太累了,就写了这个代码. 代码 直接上函数 function ...
- MATLAB二值图求figure图中任意图形面积
MATLAB二值图求figure图中任意图形面积 问题描述 思路 代码 效果 问题描述 MATLAB的figure图遇到曲线是由离散点组成,没有解析表达式.想求曲线包围面积时无法直接编程求解.如下图 ...
- MATLAB:将figure图打印成pdf格式
一个小小的需求,一个同学咨询如何把figure图打印成pdf格式,故分享一下这个方法, clcclose allclearx = 1:10;y = sin(x)+2*cos(x/2)+x/2;figu ...
最新文章
- python安装easy_install和pip
- 这群人学做AI架构师,目标却是让人们感知不到AI的存在
- 身患安全杂症,企业如何“下药”?
- Vcastr 3.0 - flash video(flv) player (开源 Open Source)
- mysql过程异常处理_mysql数据库存储过程异常处理
- 【长文本处理】长文本划窗分割算法
- 15.supervisor 安装
- Latex绘制三线表
- xcode 可以打开xmind_思维导图,原来Xmind这么强大
- Linux_USB2I2C驱动安装(以CH341驱动安装为例)
- MT4跨平台跟单系统(API跟单、EA跟单、NJ4X跟单)的实现方式和技术原理
- TDS水质及电导率计算方法及电路程序设计
- NEWSCTF第一届--官方wp(2021新春赛)
- Python(2)模块和数据类型
- java毕业设计软件源代码SSM酒店管理系统|旅店管理
- 你玩过轻量系统软总线应用吗?
- 计算字符串出现的次数
- 图像传感器的这9个知识点,你都懂吗?
- c++中的 templateclass Type
- 零基础班第十五课 - Hive DDL详解