MATLABで, 水位, 流量, 雨量のグラフを作る
最終更新:2021/12/23
MATLABで, 以下のような水位, 流量, 雨量のグラフを作る.
ダム関連の書類では頻出する図. 当研究室ではよく使うので, コードを公開する. このコードはかなり姑息なので, もうすこし一般化して函数にする予定.
コード
用意するデータは,
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';