MATLABの図に、凡例(legend)、タイトル、軸名などにアンダーバー「_」やハット「^」を使うと上手く表示されません。正しく表示させる方法について見ていきます。
MATLABの図でアンダーバーやハットを使用すると、なぜそのまま表示されないのか
以下コードを実行して、図を表示すると、アンダーバーの次の文字は下付き文字、ハットの次の文字は、上付き文字として表示されることが分かります。この理由は、Interpreter
プロパティが 'tex'
(既定) に設定されているため、texの修飾子が使用されます。このためアンダーバーは下付き文字、ハットは上付き文字として認識されます。
x = 1:1:3;
y = x;
y2 = x.^2;
figure(1)
plot(y)
hold on
plot(y2)
hold off
title('sample_matlab_figure')
legend('y=x', 'y=x^2')
xlabel('x_test')
ylabel('y^test')
アンダーバーやハットを正しく表示させる
アンダーバーやハットを正しく表示させるには、Interpreter
プロパティをnone
にします。
オブジェクトごとに個別で設定する
オブジェクトごとに設定を変えたい場合は、title
やlegend
に’Interpreter’,’none’を設定します。
figure(1)
plot(y)
hold on
plot(y2)
hold off
title('sample_matlab_figure','Interpreter','none')
legend('y=x', 'y=x^2','Interpreter','none')
xlabel('x_test','Interpreter','none')
ylabel('y^test','Interpreter','none')
全てのオブジェクトに設定する
オブジェクトごとに変える必要がない場合は、setを使用します。これによって複数の図に適用できるので便利です。
set(0,'DefaultTextInterpreter','none')
set(0,'DefaultLegendInterpreter','none')
set(0,'DefaultAxesTickLabelInterpreter','none')
figure(1)
plot(y)
hold on
plot(y2)
hold off
title('sample_matlab_figure')
legend('y=x', 'y=x^2')
xlabel('x_test')
ylabel('y^test')
figure(2)
plot(y)
hold on
plot(y2)
hold off
title('sample^matlab^figure')
legend('y=x', 'y=x^2')
xlabel('x^test')
ylabel('y_test')
コメント