対数グラフ作成時にハマったメモ

semilogy等を使用しても対数軸にならない

確認した MATLAB のバージョンは R2016a,R2019b.
対数軸グラフを作成する際は,hold on を semilogy 等 log スケールを指定する前に書いてしまうと log 表示が反映されないらしい.
以下がその例.

Untitled
clear
close all
% サンプルデータ作成
x = 1:.1:4.;
y1 = exp(x);
y2 = x.^3;
% Figure 1
% hold on を semilogy の前に
fig1 = figure;
hold on
h1 = semilogy(x,y1,'b-','LineWidth',2);
h2 = semilogy(x,y2,'m-','LineWidth',2);
hold off
grid on
axis square
le = legend([h1 h2],{'y = e^x','y = x^3'});
set(le,'Location','NorthWest','FontSize',14)
% Figure 2
% hold on を semilogy の後に
fig2 = figure;
h1 = semilogy(x,y1,'b-','LineWidth',2);
hold on
h2 = semilogy(x,y2,'m-','LineWidth',2);
hold off
grid on
axis square
le = legend([h1 h2],{'y = e^x','y = x^3'});
set(le,'Location','NorthWest','FontSize',14)
Figure 1 も
ax = fig1.CurrentAxes;
ax.YScale = 'log';
と再設定することで y軸が対数軸表示になる.
最初に hold on を実行した時点で log スケールでない座標軸が生成されてしまうことが原因のようだ.


Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2018-07-11 (Wed) 05:25:49 (2343d)