0
1

More than 5 years have passed since last update.

C++ Builder XE4 > TeeChart > 折れ線グラフ > 時系列データの欠損期間の線を切断する

Last updated at Posted at 2019-03-01
動作環境
C++ builder XE4
    TeeChart Lite v2013.08.130414

処理概要

  • 時系列のデータがある
  • データの欠損期間がある
  • 折れ線グラフにする時に欠損期間の線を切断する

実装 (関数のみ)

void __fastcall CUtilGraph_backupSeries::cutLine_dataMissingPeriod(TDateTime addDt, double yval, int updateIntvl_sec, TFastLineSeries *dstPtr)
{
    if (dstPtr == NULL) {
        return;
    }

    if (dstPtr->XValues->Count == 0) {
        // Count==0でXValues->Last()をコールするとメモリエラー「
        // 「モジュール 'Tee9180.bpl'のアドレスXXXXでアドレスYYYYに対する読み取り違反がおきました。」
        // になるため
        return;
    }

    TDateTime preDt = dstPtr->XValues->Last();

    int secBetwn = SecondsBetween(addDt, preDt);

    if (secBetwn > (updateIntvl_sec * 1.5)) { // 1.5: インターバル秒で判断したとき、1秒のずれで失敗するため1.5倍と基準とする
        dstPtr->AddNullXY(addDt, yval); // 線をつなげないための処理
    }
}

欠損期間の判断となる[updateIntvl_sec]を指定して使う。

使用方法

TFastLineSeries に対してAddXY()を実行する前にcutLine_dataMissingPeriod()をコールする。

関連

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1