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 つです
