2013年12月11日

WPF Chart: バブルチャート (Bubble Chart)

  
バブルチャートを表示するには、BubbleSeriesコンポーネントを使います。

まずは、チャートに表示するデータの定義から。

public class MyData {
    public int Hour { get; set; }
    public int Japanese { get; set; }
    public int Arithmetic { get; set; }
}
public class MyDataList {
    public List<MyData> Items { get; set; }
    public MyDataList() {
        Items = new List<MyData> {
            new MyData {  Hour=25, Japanese=95, Arithmetic=65 },
            new MyData {  Hour=22, Japanese=70, Arithmetic=50 },
            new MyData {  Hour=18, Japanese=85, Arithmetic=95 },
            new MyData {  Hour=14, Japanese=60, Arithmetic=85 },
            new MyData {  Hour=10, Japanese=80, Arithmetic=60 },
            new MyData {  Hour=8,  Japanese=60, Arithmetic=50 },
            new MyData {  Hour=4,  Japanese=50, Arithmetic=40 },
        };
    }
}

ここでは、X軸に、Hourを、Y軸に Japaneseを そしてArithmeticをバルーンのサイズに 割り当てることとします。
Hourは家庭での学習時間、Japaneseは国語の点数、Arithmeticは数学の点数という設定です。
データそのものは、僕のでっちあげなので、意味はありません

XAMLを示します。

<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:my="clr-namespace:BubbleChartSample"
        xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit" 
        x:Class="BubbleChartSample.MainWindow"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <my:MyDataList x:Key="myDataList"/>
    </Window.Resources>
    <Grid >
        <chartingToolkit:Chart
            DataContext="{Binding Mode=OneWay, Source={StaticResource myDataList}}">
            <chartingToolkit:BubbleSeries
                ItemsSource="{Binding Items}"
                    DependentValuePath="Japanese" IndependentValuePath="Hour"
                SizeValuePath="Arithmetic"  />
        </chartingToolkit:Chart>
    </Grid>
</Window>

これで次のようなバブルチャートが表示されます。

BubbleChart


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52337816