0

プロットのタイムギャップをみんながなくしたい、それを見せたい!

そのため、ワークスペース (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: 優先プロット

4

0 に答える 0