DateTime 軸の値
DateTime 軸は、Microsoft の DateTime.ToOADate() メソッドと DateTime.FromOADate() メソッドを使用して、日付と数値の間で変換することで実現されます。DateTime 軸にデータを表示したい上級ユーザーは、DateTime のコレクションではなく double のコレクションを扱うことを好む場合があります。
ScottPlot.Plot myPlot = new();
// 1 時間間隔の DateTime の配列を作成する
int numberOfHours = 24;
DateTime[] dateTimes = new DateTime[numberOfHours];
DateTime startDateTime = new(2024, 1, 1);
TimeSpan deltaTimeSpan = TimeSpan.FromHours(1);
for (int i = 0; i < numberOfHours; i++)
{
dateTimes[i] = startDateTime + i * deltaTimeSpan;
}
// 同じ DateTime を 1 時間間隔で表す double の配列を作成する
double[] dateDoubles = new double[numberOfHours];
double startDouble = startDateTime.ToOADate(); // 1900 年からの日数
double deltaDouble = 1.0 / 24.0; // 1 時間は 1 日の 1/24
for (int i = 0; i < numberOfHours; i++)
{
dateDoubles[i] = startDouble + i * deltaDouble;
}
// これで両方の配列が同じ日付を表す
myPlot.Add.Scatter(dateTimes, Generate.Sin(numberOfHours));
myPlot.Add.Scatter(dateDoubles, Generate.Cos(numberOfHours));
myPlot.Axes.DateTimeTicksBottom();
// 幅の広い目盛りラベル用のスペースを確保するため、右側にパディングを追加する
myPlot.Axes.Right.MinimumSize = 50;
myPlot.SavePng("demo.png", 400, 300);
このレシピは、軸と目盛りカテゴリに含まれる多数のレシピの 1 つです
