matlab - patch 画渐变色的曲线图

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~

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值