スポンサーリンク

【MATLAB】図で、アンダーバーやハットを正しく表示させる

MATLAB

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にします。

オブジェクトごとに個別で設定する

オブジェクトごとに設定を変えたい場合は、titlelegendに’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')

コメント