编者按:该文件被选为MATLAB Central本周精选
Polarplot3d为三维极坐标数据生成曲面、网格、线框和轮廓图。标记的极轴以固定高度绘制,也可以以最大半径跟随表面轮廓。极坐标网格也可以绘制在表面的顶部。
该功能基于J De Freitas的polar3d,文件交换ID 7656。
输入参数是一个大小矩阵Zp和一组修改默认绘图行为的属性值对。Zp的每一列包含沿一条半子午线的信息,每一行给出沿圆弧的高度值。默认情况下,假设Zp沿每一列的半径增加,沿每一行的角度(逆时针)增加。默认的绘图是在单位半径的圆上绘制的。
'RadialRange'和'AngularRange'属性可以用来指定绘制数据的上、下角度和径向值。利用角度和径向距离向量的相对排序来确定Zp的行和列的角度和径向方向感。或者,可以指定一个矢量,给出每一行或每一列的位置。
极轴可以放置在Zp的最小值、最大值或平均值处,在最大半径处,在绘图框的顶部或底部,在用户指定的位置,或者它可以沿着数据周长的表面。极轴刻度间距可以通过“TickSpacing”属性进行调整。
默认的极轴方向是0度沿着+X轴,增加的角度是逆时针的。“PolarDirection”属性可用于将其更改为罗盘样式的图,沿+Y轴为零度,并在极点周围顺时针方向增加角度。
默认的表面着色是根据Zp中的值。这可以通过提供与Zp大小相同的矩阵作为'ColorData'属性的值来改变。
可以指定缩放参数来将数据插值到更细或更粗的网格上。输出的笛卡尔数据以三个矩阵的形式返回。
屏幕截图中的示例图是用以下命令生成的。
(t, r) = meshgrid (linspace(0, 2 *π,361),linspace (4101);
[x,y] = pol2cart(t,r);
P = peaks(x,y);%的峰值函数在极网格上
绘制3d极坐标图
图(“颜色”,“白色”,“NumberTitle”,“关闭”,“名字”,“PolarPlot3d v4.3中”);
polarplot3d (P,‘PlotType’,‘surfn’,‘PolarGrid’,{4 24},TickSpacing, 8日……
“AngularRange”,[270]*π/ 180,“RadialRange”,(。8 4],……
“RadLabels”3“RadLabelLocation”,“max”{180},‘RadLabelColor’,‘红色’);
%设置绘图属性
集(gca、“DataAspectRatio”,[1 1 10],“视图”,(-12年38),…
'Xlim',[-4.5 4.5],'Xtick',[-4 -2 0 24],…
'Ylim',[-4.5 4.5],'Ytick',[-4 -2 0 24]);
标题(“polarplot3d示例”);
zip文件包含polarplot3d函数和一个带有示例图的m文件。
引用作为
肯·加拉德(2023)。三维极坐标图(//www.tatmou.com/matlabcentral/fileexchange/13200-3d-polar-plot), MATLAB中央文件交换。检索.