ギャップのないローソク足チャート
OHLC オブジェクトに格納された DateTime を使用してローソク足の水平位置を決定すると、週末や祝日などデータのない期間がプロット上にギャップとして表示されます。シーケンシャルモードを有効にすると、プロットは OHLC の DateTime を無視し、0 から始まる整数位置にローソク足を表示します。必要に応じて、ユーザーは目盛りジェネレーターをカスタマイズして、水平軸に数値ではなく日付を表示できます。
ScottPlot.Plot myPlot = new();
// ローソク足プロットを作成する
var prices = Generate.RandomOHLCs(31);
var candlePlot = myPlot.Add.Candlestick(prices);
// ローソク足を X = 0, 1, 2, ... に配置するためにシーケンシャルモードを有効にする
candlePlot.Sequential = true;
// 目盛りを表示するローソク足をいくつか決定する
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 つです
