MATLABで, 水位, 流量, 雨量のグラフを作る

MATLABで, 以下のような水位, 流量, 雨量のグラフを作る.

ダム関連の書類では頻出する図. 当研究室ではよく使うので, コードを公開する. このコードはかなり姑息なので, もうすこし一般化して函数にする予定.

name

コード

用意するデータは,

  • time:時間データ,
  • Qsim, Qobs:流量, 今回はシミュレーションと実観測,
  • WL:水位,
  • rainfall:雨量.

MATLAB
% Qsim, Qobs(流量)のプロット
plot(time, Qsim, 'r'); hold on 
plot(time, Qobs, 'b'); 
ylim([0, 6e3])
ylabel('流量 [m^3/s]')

l = legend;

% 水位をスケールして, 流量と同じ軸にプロット
WL_scaled = (WL+20) * 6000/25;
plot(time, WL_scaled, 'k', 'LineWidth', 1)

% 左に軸が増える分, プロットのエリアを縮めて, ポジションを取得
axL = gca;
axL.Position(3) = 0.70;
axL.Position(2) = axL.Position(2) - 0.02;
axL.Position(1) = 0.2;
pos = axL.Position;

% 雨量のプロット
yyaxis right
bar(time, rainfall, 'FaceColor', '#0072BD', 'EdgeColor','none')
axR = gca; 
axR.YDir = 'reverse';
axR.YColor = 'k';
ylim([0, 100])
ylabel('流域平均雨量 [mm]')

% 水位のための軸を作る. 軸以外は非表示にする.
yyaxis left
ax1 = axes;
ylim([-20, 5])
ylabel('水位 [m]')
ax1.Position = pos;
ax1.Position(1) = ax1.Position(1) - 0.1;
ax1.Box = 'off';
ax1.XColor = 'None';

% 凡例
l.String = {'Q_{sim}', 'Q_{obs}', 'WL', '雨量'};
l.Box = 'off';
l.Location = 'southwest';

この記事のTOP    BACK    TOP