2023/08/11

LiveCharts2にて

 以前から存在は知ってたり当初試したりしてましたが、今現在もβ版なんですが、自分が試した時には当時の自分が使っていたフレームワークにも対応してなかったので導入ってか、そもそも試す事すら出来ませんでした。それから随分時間が経ち正式版リリースされるんじゃないかと期待してたんですが、まだの様です。でも、どうやらフレームワークの対応も進んだらしいので試す事にしました。インストールは普通にNuGetから

LiveChartsCore.SkiaSharpView.WinForms
を入れました。2.0.0-Beta.911です。これ、「プレリリースを含める」のチェックボックスにチェック入れないと出ません。

LiveChartsCore.SkiaSharpView.WinForms.CartesianChartがツールボックスから選択出来る様になるので、使うフォームに配置する。まあ、自分が表示したいグラフに対応するシリーズを定義してコントロールのSeriesプロパティに入れてやれば簡単にグラフが表示されます。詳細は最近ならLiveCharts2の導入説明が増えてるので問題なく出来るんじゃないかと思います。自分が苦労したのは、まず軸のラベルに日本語表示すると表示されないです。これは、軸の定義でする事は直ぐに推測は出来てもなかなか見つけられなくて結局軸の設定クラスのAxisの定義でLabelsPaitプロパティにSolidColorPaintクラスをセットするんですが、このクラスにColor、FontFamily、SKFontStyleというプロパティがあるので

Axis[] yAx = new Axis[1];
yAx[0] = new Axis();
yAx[0].Labels = new string[] {"あ", "い", "う", "え", "お"};
SolidColorPaint lp = new SolidColorPaint();
lp.Color = SKColors.Blue;
lp.FontFamily = "MS ゴシック";
lp.SKFontStyle = new SKFontStyle(SKFontStyleWeight.Normal, SKFontStyleWidth.Normal, SKFontStyleSlant.Upright);
yAx[0].LabelsPaint = lp;
cartesianChart.YAxes = yAx;

とすれば可能でした。更にx軸の非表示設定も若干苦労しましたが、まあ分かってしまえば単純なんですが

Axis[] xAx = new Axis[1];
xAx[0] = new Axis();
xAx[0].IsVisible = false;
cartesianChart.XAxes = xAx;

とすれば表示されなくなります。

ただ、取り敢えず導入していた昔からのChartコントロールでも少々苦労してたり、自分の思い描く方法での表示なんかも出来なくて、LiveCharts2に期待してた部分とかもあるんですが、そもそも操作や設定方法なんかの理解が不十分で評価とか出来るレベルじゃない事も理解しますが、なかなか優劣つけがたいものですね。

0 件のコメント:

コメントを投稿