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 版权协议,转载请附上原文出处链接和本声明。