OxyPlot BarSeriesを使ってみる

.NET Framework 用のグラフ描画ライブラリである OxyPlot の紹介です.

今回は BarSeries になります.

WPF の MVVM インフラストラクチャである Livet を利用します.

データセット


namespace OxyPlotSample.Models
{
    public enum Sex { Male, Female }
    public enum BloodType { A, B, O, AB }
    public enum Cup { AA, A, B, C, D, E, F}

    public class Person : NotificationObject
    {
        public String Name { get; set; }
        public Sex Sex { get; set; }
        public int? Age { get; set; }
        public BloodType BloodType { get; set; }
        public float Height { get; set; }
        public float Weight { get; set; }
        public float BMI { get; set; }
        public float? Bust { get; set; }
        public float? Waist { get; set; }
        public float? Hip { get; set; }
        public Cup Cup { get; set; }
        public DateTime BirthDay { get; set; }
        public String Hometown { get; set; }
        public String CharacterVoice { get; set; }
        public int? VoiceActorAge { get; set; }
        public String Agency { get; set; }
    }
}

データセット用に Person クラスを定義しました.
LINQ のデータセットと同様のものです.

Bar Series

Viewです.
CategoryAxis,BarSeries の ItemsSource に List<Person> を Binding しています.
それぞれ LabelField,ValueField に Name,Height を設定し実際に表示するデータを指定しています.

namespace OxyPlotSample.ViewModels.BarSeriesViewModels
{
    public class BarSeriesViewModel : ViewModel
    {
        public List Idols { get; set; }

        public BarSeriesViewModel()
        {
            Initialize();
        }

        public void Initialize()
        {
            Idols = Person.CreateIdolList();
            // 人数が多いので765プロに限定
            Idols = Idols.Where(v => v.Agency == "765").ToList();
        }
    }
}

ViewModelです.
List<Person> を初期化しています.今回は人数が多いので765プロのアイドルに限定しています.

描画結果です.

まとめ

今回は単純な BarSeries を描画しました.
Data Binding を用いると ViewModel がとても簡潔に書けるのが良いですね.

以上です.