以可读的方式保存 Matlab 图
Save Matlab plot in readable manner
我有一个有很多子图的情节。由于数量太多,这些图变得太拥挤而无法在 Matlab 中进行分析,因此我想保存它们。但是无论我选择多高的分辨率,保存的图片总是像Matlab中的图一样拥挤
这里我有一个可重现的例子:
for x = 1:1:20
subplot(20, 3, 1+3*(x-1))
plot(1:10);
title('my_title');
subplot(20, 3, 2+3*(x-1))
plot(1:10);
title('my_title');
subplot(20, 3, 3+3*(x-1))
plot(1:10);
title('my_title');
end
print(gcf, 'test.png', '-dpng', '-r1000');
如何以可读的方式保存此图?
说明:由于我电脑屏幕小,剧情比较多,所以剧情很挤。这是一个问题,因为字体大小(我认为它可能会以某种方式改变),但也因为这些图被强烈“压缩”以适合我的屏幕。
如果我现在以更高分辨率保存绘图,图片在我的屏幕上看起来仍然像(拥挤)。
如果我连接更大的屏幕(更高分辨率),图片看起来会有所不同(例如字体大小会保持不变,但绘图会花费更多 space 等)。
也许有一个选项可以像在更大的屏幕上显示一样保存图片?
你需要做两件事:
- 减小轴的字体和LineWidth/MarkerSize,
- 将您的图形保存为矢量图形文件,例如 PDF。
如下图:前50个子图杂乱无章,放大看后50个清晰(只要将图形保存为矢量图文件)。
这是我用来生成图形的代码:
figure;
for i = 1:10
for j = 1:10
subplot(10,10,(i-1)*10+j); grid on; hold on;
p = plot([1,2],[1,2],'ko-');
axis([0 3 0 3])
if ((i-1)*10+j)>50
set(gca, 'FontSize', 2)
p.MarkerSize = 2;
end
end
end
我有一个有很多子图的情节。由于数量太多,这些图变得太拥挤而无法在 Matlab 中进行分析,因此我想保存它们。但是无论我选择多高的分辨率,保存的图片总是像Matlab中的图一样拥挤
这里我有一个可重现的例子:
for x = 1:1:20
subplot(20, 3, 1+3*(x-1))
plot(1:10);
title('my_title');
subplot(20, 3, 2+3*(x-1))
plot(1:10);
title('my_title');
subplot(20, 3, 3+3*(x-1))
plot(1:10);
title('my_title');
end
print(gcf, 'test.png', '-dpng', '-r1000');
如何以可读的方式保存此图?
说明:由于我电脑屏幕小,剧情比较多,所以剧情很挤。这是一个问题,因为字体大小(我认为它可能会以某种方式改变),但也因为这些图被强烈“压缩”以适合我的屏幕。
如果我现在以更高分辨率保存绘图,图片在我的屏幕上看起来仍然像(拥挤)。
如果我连接更大的屏幕(更高分辨率),图片看起来会有所不同(例如字体大小会保持不变,但绘图会花费更多 space 等)。
也许有一个选项可以像在更大的屏幕上显示一样保存图片?
你需要做两件事:
- 减小轴的字体和LineWidth/MarkerSize,
- 将您的图形保存为矢量图形文件,例如 PDF。
如下图:前50个子图杂乱无章,放大看后50个清晰(只要将图形保存为矢量图文件)。
这是我用来生成图形的代码:
figure;
for i = 1:10
for j = 1:10
subplot(10,10,(i-1)*10+j); grid on; hold on;
p = plot([1,2],[1,2],'ko-');
axis([0 3 0 3])
if ((i-1)*10+j)>50
set(gca, 'FontSize', 2)
p.MarkerSize = 2;
end
end
end