製品の検品結果を評価したり在庫管理をしたりする場面でチャートに H(IGH)、M(IDIUM)、L(OW) などの基準線を追加したい場合があると思います。

そのような場合は IgbValueOverlay コンポーネントの軸注釈機能と軸注釈のフォーマット機能を併せて利用することで可視化できます。
[Program.cs] IgbValueOverlayModule と IgbDataChartAnnotationModule をサービスに追加する
Program.cs で Services に IgbValueOverlayModule と IgbDataChartAnnotationModule を追加します。IgbValueOverlayModule は IgbValueOverlay コンポーネントを使用するのに必要なモジュール、IgbDataChartAnnotationModule は軸注釈 (今回の場合はチャート右側の “H”、”M”、”L” の文字) を表示するのに必要なモジュールです。
// Program.cs
builder.Services.AddIgniteUIBlazor(
typeof(IgbDataChartCoreModule),
typeof(IgbDataChartCategoryModule),
typeof(IgbDataChartCategoryCoreModule),
typeof(IgbDataChartInteractivityModule),
typeof(IgbColumnSeriesModule),
typeof(IgbValueOverlayModule),
typeof(IgbDataChartAnnotationModule)
);
[App.razor] 画面に IgbValueOverlay を追加する
28 行目以降で 1 本の基準線に対して 1 つの IgbValueOverlay を追加しています。IsAxisAnnotationEnabled を true に設定して軸注釈表示を有効にしています。そのままでは “H”、”M”、”L” ではなく Value の値 “120”、”60″、”20″ がそのまま表示されてしまうので、AxisAnnotationFormatLabelScript で “H”、”M”、”L” を返す JavaScript (※後述) を呼び出しています。
@* App.razor *@
<IgbDataChart ...>
<!-- データ表示用の軸 -->
<IgbCategoryXAxis Name="xAxis1" ... />
<IgbNumericYAxis Name="yAxis1" MinimumValue="0" MaximumValue="140" />
<!--
基準線表示用の軸
※データの目盛は左側、それとは別に「H」「M」「L」の軸注釈を右側に表示しているので、
※左側と同じ目盛間隔になるように軸注釈専用の Y 軸を右側に置いています。
※ただし目盛ごとの数値を表示する必要はないので文字色 (LabelTextColor) は透明色にしています)
-->
<IgbNumericYAxis Name="yAxis2"
MinimumValue="0"
MaximumValue="140"
LabelLocation="AxisLabelsLocation.OutsideRight"
LabelTextColor="transparent" />
...
<!-- データ表示用 -->
<IgbColumnSeries ... />
<IgbColumnSeries ... />
...
<!-- 基準線表示用 -->
<IgbValueOverlay Name="lowOverlay"
IsAxisAnnotationEnabled="true"
AxisName="yAxis2"
Value="20"
AxisAnnotationFormatLabelScript="OnFormatLabelLowScript" />
<IgbValueOverlay Name="midiumOverlay"
IsAxisAnnotationEnabled="true"
AxisName="yAxis2"
Value="60"
AxisAnnotationFormatLabelScript="OnFormatLabelMidiumScript" />
<IgbValueOverlay Name="highOverlay"
IsAxisAnnotationEnabled="true"
AxisName="yAxis2"
Value="120"
AxisAnnotationFormatLabelScript="OnFormatLabelHighScript" />
</IgbDataChart>
[igbDataChart.js] “H”、”M”、”L” を返す JavaScript を実装し、登録する
App.razor で指定している各 JavaScript (OnFormatLabelLowScript、OnFormatLabelMidiumScript、OnFormatLabelHighScript) を実装します。今回は “H”、”M”、”L” を表示するだけでよいので、そのままシンプルに “H”、”M”、”L” を return しているだけのスクリプトになっています。そして igRegisterScript で登録します。
// wwwroot/js/igbDataChart.js
(() => {
const OnFormatLabelLowScript = (args) => {
return "L";
}
igRegisterScript("OnFormatLabelLowScript", OnFormatLabelLowScript, false);
const OnFormatLabelMidiumScript = (args) => {
return "M";
}
igRegisterScript("OnFormatLabelMidiumScript", OnFormatLabelMidiumScript, false);
const OnFormatLabelHighScript = (args) => {
return "H";
}
igRegisterScript("OnFormatLabelHighScript", OnFormatLabelHighScript, false);
})();
また、ルート ページ (WebAssembly の場合は wwwroot/index.html) でこのスクリプトを読み込むコードを追加します。
<!-- wwwroot/index.html -->
...
<body class="ig-typography">
...
<script src="_content/IgniteUI.Blazor/app.bundle.js"></script>
<script src="_framework/blazor.webassembly.js"></script>
<script src="js/igbDataChart.js"></script> <!-- 👈ここ -->
</body>
サンプル
以上全てまとめたサンプルはこちらです。