先看效果:
背景:
之前的小论文用contourf画极坐标下的风险地图,
然后导师说试试换成contour画,
在极坐标下绘制等值线。
然后 … 我就在茫茫知识的海洋中寻找,,,
找到了,是python的代码,完蛋,不精通
找到了,是matlab的contourpolor函数,完蛋,我的2021a没有
找到了,csdn上下载的contourpolor函数,完蛋,用不了
无解,,,活人还能让尿憋死 ?
万丈高楼平地起,开发还得靠自己
做CSDN中在极坐标下土法绘制contour的第一人
思路:
1、利用直角坐标系用contour函数绘制
2、获取contour等值线的结果圈
3、新figure建立极坐标系
4、然后将步骤二的数据画在新figure上
上代码:
figure(3)
[C, h] = contour(X1, X2, YX,8)
h = colorbar;
set(h,'FontName','Times New Roman','Fontsize',15); % 给颜色栏命名
set(get(h,'label'),'string','PCR','FontName','Times New Roman','Fontsize',18); % 给颜色栏命名
% close(gcf);
xcoords = {};ycoords = {};zvalues = {};
qq = 1; % 解析等高线矩阵 C
while qq < size(C,2)
z_level = C(1,qq);
num_points = C(2,qq);
xcoords{end+1} = C(1, qq+1:qq+num_points);
ycoords{end+1} = C(2, qq+1:qq+num_points);
zvalues{end+1} = z_level * ones(1, num_points);
qq = qq + num_points + 1;
end
figure(4)
G = polarscatter(theta,rho+20,ss,z,'filled');hold on
h = colorbar;
set(h,'FontName','Times New Roman','Fontsize',15); % 给颜色栏命名
set(get(h,'label'),'string','PCR','FontName','Times New Roman','Fontsize',18); % 给颜色栏命名
for qqq = 1:size(xcoords,2)
[theta__, rho__] = cart2pol(xcoords{qqq},ycoords{qqq});hold on
zzz = zvalues{qqq}
target_value = zzz(1)
cmap = colormap;
num_colors = size(cmap, 1);
index = floor((target_value-min(z))/(max(z)-min(z))*num_colors)
rgb_value = cmap(index, :);
polarplot(theta__, rho__,'color',rgb_value);hold on
rlim([0 max(maxmin)])
end
pas = gca;
thetaticks(0:30:360);
thetaticklabels({'90', '60', '30', '0', '330', '300', '270', '240', '210', '180', '150', '120'});
set(gca,'RAxisLocation',0); %设置半径坐标轴位置
set(gca,'linewidth',0.75,'Fontsize',15);
总结
如果本篇文章对您有用的话,欢迎点赞收藏噢,谢谢谢谢,哈哈哈哈哈哈!!
如需帮助或要原数据的,请加扣联系:1097522625
主页还有更加丰富的内容噢 O(∩_∩)O :
Matlab 地理(经纬度)坐标 转 笛卡尔(直角)坐标
Matlab 土法求航海DCPA和TCPA,并根据DCPA正负判断目标船过本船船首or船尾
基于Matlab雷达视窗的来船运动矢量绘制
Matlab 沿着曲线的动态图制作
Matlab改进埃尔米特(Hermite)分段三次插值——(可在pchip函数中自定义导数值)
Matlab 四元素船舶领域代码复现
Matlab图片曲线数据提取
Matlab 极坐标下热力图的等值线绘制