以可读的方式保存Matlab图

问题描述

我有很多子图的情节。由于数量众多,这些图变得过于拥挤,无法在Matlab中进行分析,因此我想保存它们。但是,无论我选择多高的分辨率,保存的图片总是像Matlab中显示的那样拥挤。@H_404_1@

这里有一个可重现的示例:@H_404_1@

for x = 1:1:20
        
    subplot(20,3,1+3*(x-1))
    plot(1:10);
    title('my_title');
    subplot(20,2+3*(x-1))
    plot(1:10);
    title('my_title');
    subplot(20,3+3*(x-1))
    plot(1:10);
    title('my_title');

end

print(gcf,'test.png','-dpng','-r1000');

如何以可读的方式保存该图?@H_404_1@

说明:由于我的小型计算机屏幕上有很多图,所以图非常拥挤。这是一个问题,这是由于字体大小(我认为可以以某种方式更改),也归因于这些图被强烈地“压缩”以适合我的屏幕。@H_404_1@

如果我现在以更高的分辨率保存图,图片仍然看起来像在我的屏幕上(拥挤)。@H_404_1@

如果我要连接更大的屏幕(更高分辨率),则图片看起来会有所不同(例如,字体大小将保持不变,但绘图将占用更多空间等)。@H_404_1@

也许可以选择将图片保存在更大的屏幕上?@H_404_1@

解决方法

您需要做两件事:

  • 减少轴的字体和LineWidth / MarkerSize,
  • 将图形另存为矢量图形文件,例如PDF。

请参见下文:放大后,前50个子图是混乱且不可读的,但只要将图形另存为矢量图形文件,后50个子图就可以清晰显示。

enter image description here

这是我用来生成图形的代码:

  const elem = document.getElementById('button1');
  const getParam = sessionStorage(JSON.parse["testStyles"]);
  if (elem && getParam) {
    const elemStyle = elem.style;
    if (elemStyle) {
      for (const key in getParam) {
        elemStyle[key] = getParam[key];
      }
    }
  }