gpt4 book ai didi

matlab - 当图形保存为 PDF 时,为什么 Matlab 使用 Latex 在图例中放置文本空间?

转载 作者:太空宇宙 更新时间:2023-11-03 19:19:50 25 4
gpt4 key购买 nike

我试图在 Matlab 图形中添加一个图例,其中包含 Latex 中的一个符号。当我绘制图形时,图例看起来不错。但是,当我将图形导出为 PDF 时,图例会在其中放入空格。我不知道为什么会这样。示例代码如下:

set(groot,'defaultLineLineWidth',2,'defaultAxesFontSize',...
12,'defaultAxesFontName','timesnewroman',...
'defaulttextinterpreter','latex')
x0 = 8;
y0 = 5;
width = 5;
height = 4;
kappa1 = 0.1;
kappa2 = 0.5;
f = linspace(0,2*pi,1000);
y1 = sin(f+kappa1*f.^2);
y2 = sin(f+kappa2*f.^2);

figure(1)
hold on
plot(f,y1,'k')
plot(f,y2,'b')
xlabel('Frequency (MHz)')
ylabel('Amplitude')
legend(strcat('\kappa = 0.1 MHz/','\mu','s'),...
strcat('\kappa = 0.5 MHz/','\mu','s'))
grid on;
set(gcf,'units','inches','Position',[x0,y0,width,height],...
'PaperPositionMode','Auto','PaperUnits','Inches',...
'PaperSize',[width, height]);
saveas(gcf,'legendtest.pdf')

当我将文件保存为 PDF 时,似乎发生了错误。它保存为 JPG 就好了。下面是我得到的两张图片。 jpg 是:

testlegendjpg

但我得到的 PDF 是:

enter image description here

我在运行 OS 10.12.5 的 Mac 上使用 Matlab 版本 R2017a。在此先感谢您的帮助!

最佳答案

这是一个已知错误。查看bug report根据它影响从 R2014b 到 R2017a 的版本。该错误报告中还建议了一种解决方法,即通过将 Renderer 设置为 opengl 来生成 pdf 文件,即

set(gcf,'Renderer','opengl');

但是随后生成的 pdf 文件包含像素图形而不是矢量图形。


更好的做法是使用各自的 unicode 值来生成矢量图形。即

legend([char(954), ' = 0.1 MHz/',char(956),'s'],...
[char(954), ' = 15 MHz/',char(956),'s']); %char(954) equals 'κ', char(956) equals 'μ'

如果你想使用 italic 字符,也可以使用 unicode 字符。

legend([char([55349,57093]), ' = 0.1 MHz/',char([55349,57095]),'s'],...
[char([55349,57093]), ' = 15 MHz/',char([55349,57095]),'s']);
%char([55349,57093]) equals '𝜅' (italic κ), char([55349,57095]) equals '𝜇' (italic μ)

关于matlab - 当图形保存为 PDF 时,为什么 Matlab 使用 Latex 在图例中放置文本空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45423665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com