首页 > 解决方案 > MATLAB极轴中的沿线颜色

问题描述

我正在尝试将 MATLAB 的两个“已解决”方面结合起来——1)绘制一条 2D 线,其颜色沿线在 2)极轴中变化。

第一部分通常很简单,并且经常被问到: https ://www.mathworks.com/matlabcentral/answers/5042-how-do-i-vary-color-along-a-2d-line或 如何改变线条matlab 绘图的颜色(如颜色图)?

最常见的建议技巧是使用surfmesh创建“假”3D 线并为其着色。polaraxes但是,这在 MATLAB 中不受支持:

>> polaraxes, hold on;
>> surf([1 1; 1 1], [2 2; 2 2], [3 3; 3 3])
Error using newplot (line 80)
Adding Cartesian plot to polaraxes is not supported.

一个似乎确实有效的技巧是使用一系列线段,就像在cline.mFile Exchange 中所做的那样。http://www.mathworks.com/matlabcentral/fileexchange/3747-cline-m

>> polaraxes; hold on; cline;

给了这个

斜线极坐标结果

这在技术上是我想要的......但正如前面的评论中所指出的,它比使用 surf 或 mesh 的解决方案丑得多,因为它会绘制单独的段。

有没有其他方法可以做到这一点?我发现这里也问过这个问题 https://www.mathworks.com/matlabcentral/answers/439176-how-do-i-vary-the-color-along-a-line-in-polar-coordinates 带有“已接受回答“这似乎不可能,所以我感到有些悲观。

标签: matlabplotpolar-coordinates

解决方案


在这里交叉发布来自 Chad Greene 的答案 https://www.mathworks.com/matlabcentral/answers/822360-color-along-line-in-polaraxes#answer_692780

theta = linspace(0,6*pi,100000);
rho1 = theta/10;
polarscatter(theta,rho1,5,rho1,'filled')

极散射输出

看起来和它会得到的一样好,我想。


推荐阅读