Latex 解释器 + 在 MATLAB 中放大字体大小 降低绘图中的文本分辨率
Latex interpreter + enlarge font size in MATLAB lower text resolution in plot
我在绘图时一直使用shadedErrorBar
,使用shadedErrorBar
后的部分代码如下:
plot1 = shadedErrorBar(tau_vec, mean(deg_20_hubs_0), sd_deg_20_hubs_0, 'b-o', 1); hold on;
plot2 = shadedErrorBar(tau_vec, mean(deg_20_hubs_1), sd_deg_20_hubs_1, 'r-o', 1);
plot3 = shadedErrorBar(tau_vec, mean(deg_40_hubs_0), sd_deg_40_hubs_0, 'b-x', 1);
plot4 = shadedErrorBar(tau_vec, mean(deg_40_hubs_1), sd_deg_40_hubs_1, 'r-x', 1);
hold off;
set(gca, 'FontSize', 15);
xlabel('$\log_2 C_\tau$', 'Interpreter', 'latex'); ylabel('ExNVI');
xlim([-13, 13]);
ylim([0, 1]);
I=legend('$\bar{d}=20$; no hub ', '$\bar{d}=20$; with_hubs ', '$\bar{d}=40$; no hub ', '$\bar{d}=40$; with hubs ', ...
'Location', 'SouthWest');
set(I, 'Interpreter', 'latex', 'fontsize', 15);
if(off_diag==10 && N==500)
set(I, 'visible', 'on');
else
set(I, 'visible', 'off');
end
box on;
set(gca,'units','centimeters');
pos = get(gca,'Position');
ti = get(gca,'TightInset');
set(gcf, 'PaperUnits','centimeters');
set(gcf, 'PaperSize', [pos(3)+ti(1)+ti(3)+0.6 pos(4)+ti(2)+ti(4)+0.6]);
set(gcf, 'PaperPositionMode', 'manual');
set(gcf, 'PaperPosition',[0 0 pos(3)+ti(1)+ti(3)+0.6 pos(4)+ti(2)+ti(4)+0.6]);
saveas(fig, sprintf('./output/offdiag_%d_N_%d.pdf', off_diag, N));
生成的绘图具有像这样的低分辨率文本:
但是曲线的分辨率很好。当我尝试删除乳胶解释器时问题消失了,但是否可以保留它并修复分辨率?我在 Windows.
中使用 MATLAB 2014b 绘制了绘图
非常感谢!
set(gcf, 'renderer','painters');
将解决问题。它会将图形呈现为矢量图形,这是更好的选择,因为您使用的是 pdf 格式。还使用 print
命令而不是 saveas
:
指定分辨率
print(fig, '-dpdf', '-r600', 'myFigure.pdf')
我在绘图时一直使用shadedErrorBar
,使用shadedErrorBar
后的部分代码如下:
plot1 = shadedErrorBar(tau_vec, mean(deg_20_hubs_0), sd_deg_20_hubs_0, 'b-o', 1); hold on;
plot2 = shadedErrorBar(tau_vec, mean(deg_20_hubs_1), sd_deg_20_hubs_1, 'r-o', 1);
plot3 = shadedErrorBar(tau_vec, mean(deg_40_hubs_0), sd_deg_40_hubs_0, 'b-x', 1);
plot4 = shadedErrorBar(tau_vec, mean(deg_40_hubs_1), sd_deg_40_hubs_1, 'r-x', 1);
hold off;
set(gca, 'FontSize', 15);
xlabel('$\log_2 C_\tau$', 'Interpreter', 'latex'); ylabel('ExNVI');
xlim([-13, 13]);
ylim([0, 1]);
I=legend('$\bar{d}=20$; no hub ', '$\bar{d}=20$; with_hubs ', '$\bar{d}=40$; no hub ', '$\bar{d}=40$; with hubs ', ...
'Location', 'SouthWest');
set(I, 'Interpreter', 'latex', 'fontsize', 15);
if(off_diag==10 && N==500)
set(I, 'visible', 'on');
else
set(I, 'visible', 'off');
end
box on;
set(gca,'units','centimeters');
pos = get(gca,'Position');
ti = get(gca,'TightInset');
set(gcf, 'PaperUnits','centimeters');
set(gcf, 'PaperSize', [pos(3)+ti(1)+ti(3)+0.6 pos(4)+ti(2)+ti(4)+0.6]);
set(gcf, 'PaperPositionMode', 'manual');
set(gcf, 'PaperPosition',[0 0 pos(3)+ti(1)+ti(3)+0.6 pos(4)+ti(2)+ti(4)+0.6]);
saveas(fig, sprintf('./output/offdiag_%d_N_%d.pdf', off_diag, N));
生成的绘图具有像这样的低分辨率文本:
非常感谢!
set(gcf, 'renderer','painters');
将解决问题。它会将图形呈现为矢量图形,这是更好的选择,因为您使用的是 pdf 格式。还使用 print
命令而不是 saveas
:
print(fig, '-dpdf', '-r600', 'myFigure.pdf')