Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

DateTimeAutomatic 目盛りフォーマッター

ユーザーは、目盛り位置から日時の目盛りラベルを作成するために使用されるロジックをカスタマイズできます。

ScottPlot.Plot myPlot = new();

// 水平軸に DateTime 値を使用してデータをプロットする
DateTime[] xs = Generate.ConsecutiveHours(100);
double[] ys = Generate.RandomWalk(100);
myPlot.Add.Scatter(xs, ys);

// 下軸が DateTime 目盛りを使用するように設定する
var axis = myPlot.Axes.DateTimeTicksBottom();

// 文字列を返すカスタムフォーマッターを作成する
// ズームアウト時は日付のみ、ズームイン時は時刻のみ
static string CustomFormatter(DateTime dt)
{
    bool isMidnight = dt is { Hour: 0, Minute: 0, Second: 0 };
    return isMidnight
        ? DateOnly.FromDateTime(dt).ToString()
        : TimeOnly.FromDateTime(dt).ToString();
}

// カスタム目盛りフォーマッターを適用する
var tickGen = (ScottPlot.TickGenerators.DateTimeAutomatic)axis.TickGenerator;
tickGen.LabelFormatter = CustomFormatter;

myPlot.SavePng("demo.png", 400, 300);
このレシピは、目盛りのカスタマイズカテゴリに含まれる多数のレシピの 1 つです