プロットのタイムギャップをみんながなくしたい、それを見せたい!
そのため、ワークスペース (tableM) に 2 つの変数 (Date と Temperature) を持つテーブルがあります。
日付は「datenum」形式です。データに対して多くの前処理を行ったため、多くの行を削除する必要がありました。したがって、ギャップのある日付変数になってしまいました。
このコードを使用して温度をプロットするとplot(tableM.Temperature)
、MATLAB は正常に温度をプロットし、2 つのポイント (欠落した日付の前と欠落した日付の後) を接続するだけです。
このコードplot(tableM.Date,tableM.Temperature)
を使用して温度をプロットし、datetick
関数を使用すると、日付が横軸に固定されているプロットが得られ、日付のギャップについて、MATLAB は 2 つのポイント (欠落している日付の前後) を直線で結びます。ギャップ期間。
私が望むのは、これらのポイントを結ぶこの直線ではなく、ギャップ期間をゼロにすることです。
どうすればいいですか?
これは例です:
% Generating data:
Date = [datenum(now-2000):datenum(now+2000)]';
Temperature = rand(4001,1); Temperature = sort(Temperature);
% Creating gaps:
Date(500:600) = []; Temperature(500:600) = [];
Date(500:600) = []; Temperature(500:600) = [];
Date(1500:2000) = []; Temperature(1500:2000) = [];
Date(1500:2000) = []; Temperature(1500:2000) = [];
% To make illustration mroe understandable:
Temperature(601:1499) = 1.8 * Temperature(601:1499);
% Normal plot:
figure; plot(Date,Temperature)
ax = gca; ax.XTickLabelRotation = -45; ax.XTick = Date(1,1):200:Date(end,1);
datetick('x',20,'keepticks','keeplimits'); ylabel('Temperature (C)'); axis tight
% Scatter plot:
figure; scatter(Date,Temperature,'.')
ax = gca; ax.XTickLabelRotation = -45; ax.XTick = Date(1,1):200:Date(end,1);
datetick('x',20,'keepticks','keeplimits'); ylabel('Temperature (C)'); axis tight
重要: 私の「日付」ベクトルは「時間単位」です。それが役に立つ可能性のある Date ベクトルの datenum 値の間に特定の違いを生み出すかどうかはわかりません。
画像 1: 正規プロットと散布図
画像 2: 優先プロット