NJU1healer的个人博客分享 http://blog.sciencenet.cn/u/NJU1healer

博文

[转载]matlab画图技巧(自如移动legend、输出eps文件和边框、index号与行列号批量相互转化)

已有 2170 次阅读 2020-6-12 16:23 |个人分类:matlab|系统分类:科研笔记|文章来源:转载

(一)index号与行列号批量相互转化

function [i,j] = ind2ij(ind, nb_line)  

   i= mod(ind, nb_line); % line number

   ind_ind = 1:length(ind);

   end_line = find(i == 0);

   if ~isempty(end_line)

       i(end_line) = nb_line;

       j(end_line) = ind(end_line)/nb_line;

       ind_ind(end_line) = [];

   end

   j(ind_ind) = floor(ind(ind_ind) /nb_line)+1;


function ind = ij2ind(i, j, nb_line)

   ind = (j-1)*nb_line+i;

(二)matlab绘图输出eps文件及边框

遥感数据处理中,重要一环就是结果展示和输出。

其中eps文件虽然在常用数据格式和打印数据格式中使用不在那么普遍,但是在学术文章撰写中,由于其对矢量数据的支持能力,与常规位图相比具有更好的展示效果,因此至今仍然在出版、著作中占有一席之地。

matlab作为重要的数字图像处理工具,提供了较为灵活的图像展示功能,并支持多种图像格式。

下面,总结了一种较为有效的带边框的eps文件输出方式


首先裁掉多余空白区域,并设置边框

imshow(rand(200,300).^.4,  'border', 'tight');

axis on;

axis square;


set(gca, 'linewidth', 2);

注意,这里最好不要设为小于1, 否则容易丢失右侧和底侧的边框


然后,就是eps文件输出了

saveas(figure(1), '.***.eps', 'psc2');

‘psc2’很重要,不要丢掉了。那么,存在多个figure的时候,在生成figure时,注意保存相应句柄就可以了。


(三)Matlab如何真正自如的控制legend

最近遇到一个问题,用matlab绘制一堆线和点之后,想添加一下图例,但是遇到两个新问题

第一个是,需要绘制的图例比较多,用一个句子表达起来很长很长,除了不美观之外,致命的问题是这种方法太笨;

第二个问题是,在绘图的开始,无法提前获知究竟需要画多少个图例。

x=-1:.2:1;

y(:,1)=sin(x);

y(:,2)=cos(x);

y(:,3)=y1.*y2;

y(:,4)=log(x);

y(:,5)=-log(x);

......

for i=1:n

   mcolor=rand(1,3);

   plot(x, y(i),'--', 'color', mcolor);

   %重点解决方法在这里

   mylgd{i} = ['y', num2str(i)];

end

legend(mylgd);


特别说明:本文转载自,欢迎参阅,感谢博主分享

http://blog.sciencenet.cn/home.php?mod=space&uid=662112


点滴分享,福泽你我!Add oil!



https://wap.sciencenet.cn/blog-3428464-1237610.html

上一篇:Matlab mex -setup 编译器问题
下一篇:Dataset Shift in Machine Learning
收藏 IP: 211.162.81.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

全部作者的其他最新博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-20 09:29

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部