Closed5

LiveChart2を試す

たくのろじぃ | Takumi Okawaたくのろじぃ | Takumi Okawa

とりあえずサンプルと同じロジックで書いてみた。

Index.blazor
@page "/"
@using LiveChartsCore.SkiaSharpView.Blazor;
@using Module;

<section>
    <CartesianChart
        Series="LineChart.SeriesCollection"
	    ZoomMode="LiveChartsCore.Measure.ZoomAndPanMode.X">
    </CartesianChart>
</section>

@code{
    public LineChart LineChart { get; set; } = new();
}
LineChart.cs
using LiveChartsCore;
using LiveChartsCore.SkiaSharpView;

namespace BlazorApps.Module
{
    public class LineChart
    {
        public IEnumerable<ISeries> SeriesCollection { get; set; }

        public LineChart()
        {
            var values = new int[100];
            var rnd = new Random();

            for (int i = 0; i < values.Length; i++)
            {
                values[i] = rnd.Next(0, 100);
            }

            SeriesCollection = new ISeries[] { new LineSeries<int> { Values = values } };
        }
    }
}

これでビルドしてみたら、参照が足りていないみたいでエラーが表示された。

たくのろじぃ | Takumi Okawaたくのろじぃ | Takumi Okawa

【LiveCharts2】
OxyPlot と比べて簡単に実装でき、アニメーションも豊富。リファレンスも充実している。
しかし、プロット数が1000を超えると重くてFPSが下がる。
約8000円のライセンスを支払えば拡張機能によって最適化が行われて高速になるらしい。

【OxyPlot】
LiveCharts2 と比べて実装が少し難しく、アニメーションが無い。リファレンスが少ないので見つけるまでが大変かも。
しかし、プロット数が1万点を超えてもサクサク動き、無料で利用できる。

【総評】
かっこいいグラフをつくりたいなら LiveCharts2
サクサク動くグラフをつくりたいなら OxyPlot

という感じかと。特に研究データはプロット数が大量になる可能性が高いので、OxyPlot がおすすめ。WinForms の Chart コントロールは .NET Core 以降では推奨されていないみたい。

以上をもってクローズ。

このスクラップは2022/03/06にクローズされました