ギャップのないOHLCチャート
OHLCオブジェクトに格納されたDateTimeを水平位置の決定に使用すると、週末や祝日などデータのない期間がプロット内のギャップとして表示されます。シーケンシャルモードを有効にすると、プロットはOHLCのDateTimeを無視し、0から始まる整数位置にOHLCを配置します。必要に応じて、ユーザーは目盛りジェネレーターをカスタマイズして、水平軸に数値の代わりに日付を表示できます。
ScottPlot.Plot myPlot = new();
// OHLCプロットを作成する
var prices = Generate.RandomOHLCs(31);
var ohlcPlot = myPlot.Add.OHLC(prices);
// OHLCをX = 0, 1, 2, ...に配置するためにシーケンシャルモードを有効にする
ohlcPlot.Sequential = true;
// 目盛りを表示するいくつかのOHLCを決定する
int tickCount = 5;
int tickDelta = prices.Count / tickCount;
DateTime[] tickDates = prices
.Where((x, i) => i % tickDelta == 0)
.Select(x => x.DateTime)
.ToArray();
// デフォルトでは、水平目盛りラベルは数値(1, 2, 3...)になります
// 手動の目盛りジェネレーターを使用して、水平軸に日付を表示できます
double[] tickPositions = Generate.Consecutive(tickDates.Length, tickDelta);
string[] tickLabels = tickDates.Select(x => x.ToString("MM/dd")).ToArray();
ScottPlot.TickGenerators.NumericManual tickGen = new(tickPositions, tickLabels);
myPlot.Axes.Bottom.TickGenerator = tickGen;
myPlot.SavePng("demo.png", 400, 300);
このレシピは、金融プロットカテゴリに含まれる多数のレシピの1つです
