方法一:直接在figure上调整

优点: 比较方便

缺点:坐标轴不能直接修改,会直接复制母图。

 以绘制的三维散点图为例(二维以及折线(plot)等类似):

原始图像:

现想将绿色部分局部放大。

  • 首先滑动鼠标滚轮

  • 点击白色箭头

  • 复制(ctrl+c 或者 鼠标右键->复制)
  • 左上角点击 工具->还原视图
  • 粘贴(ctrl+v 或者 鼠标右键->粘贴)

  • 点击四个角点进行缩放和位置移动

  • 双击文字可进行修改和删除
  • 多余的图例或者颜色栏可通过点击删除

  • 保存(ctrl+s)

 PS:示例代码(二维以及折线等类似):

figure;
scatter3(x, y, z, 50, t, 'filled');  % 绘制三维散点图
%plot绘制折线图类似
xlabel('x(m)', 'FontSize', 24);  % 设置 x 轴标签
ylabel('y(m)', 'FontSize', 24);  % 设置 y 轴标签
zlabel('Z(m)', 'FontSize', 24);  % 设置 Z 轴标签
title('乱点', 'FontSize', 24);  % 设置标题
colormap(jet);  % 使用 'jet' 渐变色
colorbar;  % 添加颜色条
caxis([min(t) max(t)]);  % 设定颜色条范围
grid on;
set(gca, 'FontSize', 24, 'LineWidth', 1.5);  % 设置字体和线宽

方法二:代码中调整

优点:修改更加自由随意

缺点:不断调试位置和大小

最重要的其实就一句代码

axes('Position', [0.6, 0.7, 0.15, 0.25]);
  • left = 0.6:新坐标轴的左边缘距离主图左边缘 60% 的位置。
  • bottom = 0.7:新坐标轴的底边缘距离主图底边缘 60% 的位置。
  • width = 0.15:新坐标轴的宽度为主图宽度的 25%。
  • height = 0.25:新坐标轴的高度为主图高度的 25%。

仍旧以上述上述代码示例:

figure;
scatter3(x, y, z, 50, t, 'filled');  % 绘制三维散点图
%plot绘制折线图类似
xlabel('x(m)', 'FontSize', 24);  % 设置 x 轴标签
ylabel('y(m)', 'FontSize', 24);  % 设置 y 轴标签
zlabel('Z(m)', 'FontSize', 24);  % 设置 Z 轴标签
title('乱点', 'FontSize', 24);  % 设置标题
colormap(jet);  % 使用 'jet' 渐变色
colorbar;  % 添加颜色条
caxis([min(t) max(t)]);  % 设定颜色条范围
grid on;
set(gca, 'FontSize', 24, 'LineWidth', 1.5);  % 设置字体和线宽
xlim1 = -1.5;xlim2 = 1.5;ylim1 = -1.5;ylim2 = 1.5;zlim1 = -1.5;zlim2 = 1.5;

xlim_local = [xlim1, xlim2];
ylim_local = [ylim1, ylim2];
zlim_local = [zlim1, zlim2];

% 创建小的 axes 坐标轴用于局部放大
axes('Position', [0.48, 0.66, 0.15, 0.25]);  % 设置局部放大图的位置和大小 (相对位置和大小)

% 绘制局部放大图
scatter3(x(x >= xlim_local(1) & x <= xlim_local(2) & ...
            y >= ylim_local(1) & y <= ylim_local(2) & ...
            z >= zlim_local(1) & z <= zlim_local(2)), ...
          y(x >= xlim_local(1) & x <= xlim_local(2) & ...
            y >= ylim_local(1) & y <= ylim_local(2) & ...
            z >= zlim_local(1) & z <= zlim_local(2)), ...
          z(x >= xlim_local(1) & x <= xlim_local(2) & ...
            y >= ylim_local(1) & y <= ylim_local(2) & ...
            z >= zlim_local(1) & z <= zlim_local(2)), ...
          50, t(x >= xlim_local(1) & x <= xlim_local(2) & ...
                 y >= ylim_local(1) & y <= ylim_local(2) & ...
                 z >= zlim_local(1) & z <= zlim_local(2)), 'filled');

% 隐藏局部放大图的边框和坐标轴
ax = gca;
ax.Box = 'off';  % 隐藏边框
ax.XColor = 'none';  % 隐藏 x 轴刻度
ax.YColor = 'none';  % 隐藏 y 轴刻度
ax.ZColor = 'none';  % 隐藏 z 轴刻度

% 添加网格
grid on;
colormap(jet);  % 使局部图的颜色一致

 

 tips:调整视角

如果想要手动旋转会发现:旋转局部图的时候,大图会一起转,但旋转大图的时候局部图不会转;所以想要调整视角,先转小图再转大图。

当然不止可以绘制一个~~~

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐