如何解决我想制作一个轮廓/曲面图,显示单元格中的值,类似于 EFI 调整图
我想在 MATLAB 中做这样的事情。这是一张地图,它具有 x
和 y
轴以及 z
轴的值以及 z
值大小的颜色。基本上是一个countour map,它在屏幕上打印矩阵中的值
解决方法
修改 imagesc()
图
通过修改带有文本注释的 imagesc
图和 line()
函数来创建网格,这里的内容可能足够相似。需要完成包括轴替换在内的一些轴属性才能正确配置绘图。不幸的是,这不是一种非常简洁的方法,但它可能会满足您的应用程序。
Engine_Load = [0.35 0.55 0.7 0.87 1 1.15 1.25 1.35 1.45 1.6 1.7 1.8 2 2.2 2.5];
Engine_Speed = (800:400:7600);
%Creating random test data%
[Engine_Load_Grid,Engine_Speed_Grid] = meshgrid(Engine_Load,Engine_Speed);
Estimated_Air_Fuel_Ratio = rand(length(Engine_Speed),length(Engine_Load));
%Creating the grid structure%
X_Axis = (1:length(Engine_Load));
Y_Axis = (1:length(Engine_Speed));
[X_Grid,Y_Grid] = meshgrid(X_Axis,Y_Axis);
clf;
imagesc('XData',X_Axis,'YData',Y_Axis,'CData',Estimated_Air_Fuel_Ratio);
xticks(1:1:length(X_Axis));
yticks(1:1:length(Y_Axis));
xlim([0.5 length(X_Axis)+0.5]);
ylim([0.5 length(Y_Axis)+0.5]);
Current_Axis = gca;
Current_Axis.XAxisLocation = 'Top';
grid on;
for Horizontal_Lines = 1: length(yticks)
line([0.5 length(X_Axis)+0.5],[Horizontal_Lines+0.5 Horizontal_Lines+0.5],'color','w','LineWidth',2);
end
for Vertical_Lines = 1: length(yticks)
line([Vertical_Lines+0.5 Vertical_Lines+0.5],[0.5 length(Y_Axis)+0.5],2);
end
Estimated_Air_Fuel_Ratio = flip(Estimated_Air_Fuel_Ratio);
[Matrix_Height,Matrix_Width] = size(Estimated_Air_Fuel_Ratio);
for Row_Index = 1: Matrix_Height
for Column_Index = 1: Matrix_Width
text(Column_Index,Matrix_Height+1-Row_Index,num2str(Estimated_Air_Fuel_Ratio(Row_Index,Column_Index)));
end
end
Current_Figure = gcf;
set(findall(gcf,'type','text'),'HorizontalAlignment','center')
set(Current_Axis,'xtick','xticklabel',Engine_Load);
set(Current_Axis,'ytick','yticklabel',Engine_Speed);
xlabel('Engine Load'); ylabel('Engine Speed');
colorbar
Current_Figure.Position = [0 0 1000 1000];
使用 MATLAB R2019b 运行
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。