• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Matlab多个Figure图合成一个Fig - GarfieldEr007

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Matlab多个Figure图合成一个Fig

2016-03-31 21:19  GarfieldEr007  阅读(10429)  评论(0编辑  收藏  举报

案例:之前跑过的程序 已经生成了多个matlab图,现在需要进行合并到一个图中。

解决方案,利用图像句柄把figure图像中的参数读入到内存中,然后重新subplot绘制。

程序如下:

Code   ViewCopyPrint
  1. clc;clear;   
  2. open(‘./test_1.fig’)   
  3. figure_info=findall(gcf,’type’,\'line’);    
  4. xdata1 = get(figure_info,’xdata’);   
  5. ydata1 = get(figure_info,’ydata’);   
  6. color1 = get(figure_info,’color’);   
  7. subNum1 = length(xdata1);   
  8.   
  9. open(‘./test_2.fig’)   
  10. figure_info=findall(gcf,’type’,\'line’);    
  11. xdata2 = get(figure_info,’xdata’);   
  12. ydata2 = get(figure_info,’ydata’);   
  13. color2 = get(figure_info,’color’);   
  14. subNum2 = length(xdata2);   
  15.   
  16. open(‘./test_3.fig’)   
  17. figure_info=findall(gcf,’type’,\'line’);    
  18. xdata3 = get(figure_info,’xdata’);   
  19. ydata3 = get(figure_info,’ydata’);   
  20. color3 = get(figure_info,’color’);   
  21. subNum3 = length(xdata3);   
  22.   
  23. open(‘./test_4.fig’)   
  24. figure_info=findall(gcf,’type’,\'line’);    
  25. xdata4 = get(figure_info,’xdata’);   
  26. ydata4 = get(figure_info,’ydata’);   
  27. color4 = get(figure_info,’color’);   
  28. subNum4 = length(xdata4);   
  29.   
  30. %%   
  31.   
  32. subplot(2,2,1)   
  33. for i=subNum1:-1:1   
  34.     if length(xdata1{i})==1   
  35.         break;   
  36.     end   
  37.     plot(xdata1{i},ydata1{i},‘.’,’color’,color1{i})   
  38.     hold on;   
  39. end   
  40. title(‘(a). K-means (TF-IDF)’)   
  41. set(gca,’xtick’,[]);   
  42. set(gca,’ytick’,[]);   
  43. % box off;   
  44. % axis off;   
  45. subplot(2,2,2)   
  46. for i=subNum2:-1:1   
  47.     if length(xdata2{i})==1   
  48.         break;   
  49.     end   
  50.     plot(xdata2{i},ydata2{i},‘.’,’color’,color2{i})   
  51.     hold on;   
  52. end   
  53. title(‘(b). Spectral Clustering (best)’)   
  54. set(gca,’xtick’,[]);   
  55. set(gca,’ytick’,[]);   
  56. % box off;   
  57. % axis off;   
  58. subplot(2,2,3)   
  59. for i=subNum3:-1:1   
  60.     if length(xdata3{i})==1   
  61.         break;   
  62.     end   
  63.     plot(xdata3{i},ydata3{i},‘.’,’color’,color3{i})   
  64.     hold on;   
  65. end   
  66. title(‘(c). Average Embedding (TF)’)   
  67. set(gca,’xtick’,[]);   
  68. set(gca,’ytick’,[]);   
  69. % box off;   
  70. % axis off;   
  71. subplot(2,2,4)   
  72. for i=subNum4:-1:1   
  73.     if length(xdata4{i})==1   
  74.         break;   
  75.     end   
  76.     lineH(subNum4-i+1) = plot(xdata4{i},ydata4{i},‘.’,’color’,color4{i});   
  77.     hold on;   
  78. end   
  79. title(‘(d). STCC’)   
  80. set(gca,’xtick’,[]);   
  81. set(gca,’ytick’,[]);   
  82. % box off;   
  83. % axis off;   
  84. hL=legend(lineH,{’1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′});   
  85. newPosition = [0.4 0.4 0.2 0.2];   
  86. newUnits = ’normalized’;   
  87. 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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Matlab将多幅图片保存为mat发布时间:2022-07-18
下一篇:
matlab图像处理(一)--图片读写发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap