matlab – patch 画渐变色的曲线图

  • Post author:
  • Post category:其他




matlab – patch 画渐变色的曲线图

本篇博客主要时记录一下在

matlab

中利用

patch

函数画渐变色曲线时所遇到的问题,及处理方式!




patch

函数主要是用来填充面的颜色,但将填充免得颜色设为

none

,只保留面边缘的颜色变化,则就会实现画出渐变色曲线的功能! )

一开始的程序是

val = Mmm_plane(1:3600,:); 	% 一组包含三维坐标的数据
xx = [val(:,1)']; 			% x 坐标
yy = [val(:,2)'];			% y 坐标
zz = [val(:,3)'];			% z 坐标
da = 1:3600;				% 表现数据取值范围
% patch(xx,yy,zz,'edgecolor','flat','facecolor','none')
% 利用 patch 画出 val 中对应的曲线
patch(xx,yy,zz,da,'edgecolor','flat','facecolor','none','MarkerFaceColor','flat','LineWidth',2) 
view(3)
grid on; 
colorbar

结果图是

在这里插入图片描述

上图显示了一个问题,就是 曲线首尾相接。而处理这个问题,查了好一会资料,花费了挺长时间,最后偶然发现了一个很简单的解决方法:

给每一组坐标数据添加

nan


修改后的程序为

val = Mmm_plane(1:3600,:);
xx = [val(:,1)',nan];
yy = [val(:,2)',nan];
zz = [val(:,3)',nan];
da = 1:3601;
% patch(xx,yy,zz,'edgecolor','flat','facecolor','none')
patch(xx,yy,zz,da,'edgecolor','flat','facecolor','none','MarkerFaceColor','flat','LineWidth',2)
view(3)
grid on; 
colorbar

运行结果是

在这里插入图片描述

很明显,首尾相接的问题解决了!

上面的是三维的,二维的和上面的解决方法一样!

一开始程序

val = Mmm_plane(1:3600,:);
xx = [val(:,1)'];
yy = [val(:,2)'];
da = 1:3600;
% patch(xx,yy,zz,'edgecolor','flat','facecolor','none')
patch(xx,yy,da,'edgecolor','flat','facecolor','none','MarkerFaceColor','flat','LineWidth',2)
grid on; colorbar

运行结果

在这里插入图片描述

同样的修改方式,就是添加一个

nan

,最后运行出来的图为

在这里插入图片描述

好了,这篇博客就这么结束了,

that’s all~



版权声明:本文为m0_51961114原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。