PowerTools SPREAD for Windows Forms 10.0J > 開発者ガイド > チャート > チャートの作成 > プロットの作成 > ツリーマップチャートの作成 |
ツリーマップチャートは、階層データを、ネストされた一連の長方形として表示します。ツリーのブランチ(枝)は長方形で表され、個々のサブブランチはさらに小さな長方形で表されます。グラフ内のさまざまな長方形には色とサイズを使い分けて、パターンを特定しやすくします。ツリーマップは、空間を効率的に使用できるという特徴もあり、大量のデータを表示する場合に便利です。
ツリーマップチャートを作成するには、TreemapSeriesクラスおよびTreemapPlotAreaクラスを使用します。
ツリーマップチャート内の各アイテムを色分けするには、Fillsプロパティを使用します。各色は、各データアイテムに対してインデックス順にマッピングされます。次の図は、ツリーマップチャートのデータと各データのインデックスを表しています。後述のサンプルコードでは、この図のとおりに、各データアイテムに色をマッピングする方法を示します。
SPREADデザイナまたはチャートデザイナを使用したグラフの作成については、「SPREAD上でのチャートの使用」または「チャートの追加」を参照してください。
次のサンプルコードは、ツリーマップチャートを作成します。
C# |
コードのコピー
|
---|---|
fpSpread1.ActiveSheet.Cells[0, 0].Text = "Quarter"; fpSpread1.ActiveSheet.Cells[0, 1].Text = "Month"; fpSpread1.ActiveSheet.Cells[0, 2].Text = "Week"; fpSpread1.ActiveSheet.Cells[0, 3].Text = "Sales"; fpSpread1.ActiveSheet.Cells[1, 0].Text = "1st"; fpSpread1.ActiveSheet.Cells[1, 1].Text = "Jan"; fpSpread1.ActiveSheet.Cells[1, 3].Value = 1.7; fpSpread1.ActiveSheet.Cells[2, 1].Text = "Feb"; fpSpread1.ActiveSheet.Cells[2, 2].Text = "Wk1"; fpSpread1.ActiveSheet.Cells[2, 3].Value = 2.0; fpSpread1.ActiveSheet.Cells[3, 2].Text = "Wk2"; fpSpread1.ActiveSheet.Cells[3, 3].Value = 1.0; fpSpread1.ActiveSheet.Cells[4, 2].Text = "Wk3"; fpSpread1.ActiveSheet.Cells[4, 3].Value = 1.0; fpSpread1.ActiveSheet.Cells[5, 2].Text = "Wk4"; fpSpread1.ActiveSheet.Cells[5, 3].Value = 1.5; fpSpread1.ActiveSheet.Cells[6, 1].Text = "Mar"; fpSpread1.ActiveSheet.Cells[6, 3].Value = 3.0; fpSpread1.ActiveSheet.Cells[7, 0].Text = "2nd"; fpSpread1.ActiveSheet.Cells[7, 1].Text = "Apr"; fpSpread1.ActiveSheet.Cells[7, 3].Value = 1.1; fpSpread1.ActiveSheet.Cells[8, 1].Text = "May"; fpSpread1.ActiveSheet.Cells[8, 3].Value = 2.8; fpSpread1.ActiveSheet.Cells[9, 1].Text = "Jun"; fpSpread1.ActiveSheet.Cells[9, 3].Value = 1.3; fpSpread1.ActiveSheet.Cells[10, 0].Text = "3rd"; fpSpread1.ActiveSheet.Cells[10, 1].Text = "July"; fpSpread1.ActiveSheet.Cells[10, 3].Value = 1.7; fpSpread1.ActiveSheet.Cells[11, 1].Text = "Aug"; fpSpread1.ActiveSheet.Cells[11, 3].Value = 1.6; fpSpread1.ActiveSheet.Cells[12, 1].Text = "Sept"; fpSpread1.ActiveSheet.Cells[12, 3].Value = 2.1; fpSpread1.ActiveSheet.Cells[13, 0].Text = "4th"; fpSpread1.ActiveSheet.Cells[13, 1].Text = "Oct"; fpSpread1.ActiveSheet.Cells[13, 3].Value = 1.4; fpSpread1.ActiveSheet.Cells[14, 1].Text = "Nov"; fpSpread1.ActiveSheet.Cells[14, 3].Value = 2.0; fpSpread1.ActiveSheet.Cells[15, 1].Text = "Dec"; fpSpread1.ActiveSheet.Cells[15, 2].Text = "Wk1"; fpSpread1.ActiveSheet.Cells[15, 3].Value = 3.0; fpSpread1.ActiveSheet.AddChart(new FarPoint.Win.Spread.Model.CellRange(0, 0, 16, 4), typeof(FarPoint.Win.Chart.TreemapSeries), 550, 450, 300, 0); FarPoint.Win.Chart.TreemapSeries treeseries = (FarPoint.Win.Chart.TreemapSeries)fpSpread1.Sheets[0].Charts[0].Model.PlotAreas[0].Series[0]; treeseries.Fills.AddRange(new FarPoint.Win.Chart.Fill[] { new FarPoint.Win.Chart.SolidFill(Color.MediumSeaGreen), null, null, null, null }); |
Visual Basic |
コードのコピー
|
---|---|
FpSpread1.ActiveSheet.Cells(0, 0).Text = "Quarter" FpSpread1.ActiveSheet.Cells(0, 1).Text = "Month" FpSpread1.ActiveSheet.Cells(0, 2).Text = "Week" FpSpread1.ActiveSheet.Cells(0, 3).Text = "Sales" FpSpread1.ActiveSheet.Cells(1, 0).Text = "1st" FpSpread1.ActiveSheet.Cells(1, 1).Text = "Jan" FpSpread1.ActiveSheet.Cells(1, 3).Value = 1.7 FpSpread1.ActiveSheet.Cells(2, 1).Text = "Feb" FpSpread1.ActiveSheet.Cells(2, 2).Text = "Wk1" FpSpread1.ActiveSheet.Cells(2, 3).Value = 2.0 FpSpread1.ActiveSheet.Cells(3, 2).Text = "Wk2" FpSpread1.ActiveSheet.Cells(3, 3).Value = 1.0 FpSpread1.ActiveSheet.Cells(4, 2).Text = "Wk3" FpSpread1.ActiveSheet.Cells(4, 3).Value = 1.0 FpSpread1.ActiveSheet.Cells(5, 2).Text = "Wk4" FpSpread1.ActiveSheet.Cells(5, 3).Value = 1.5 FpSpread1.ActiveSheet.Cells(6, 1).Text = "Mar" FpSpread1.ActiveSheet.Cells(6, 3).Value = 3.0 FpSpread1.ActiveSheet.Cells(7, 0).Text = "2nd" FpSpread1.ActiveSheet.Cells(7, 1).Text = "Apr" FpSpread1.ActiveSheet.Cells(7, 3).Value = 1.1 FpSpread1.ActiveSheet.Cells(8, 1).Text = "May" FpSpread1.ActiveSheet.Cells(8, 3).Value = 2.8 FpSpread1.ActiveSheet.Cells(9, 1).Text = "Jun" FpSpread1.ActiveSheet.Cells(9, 3).Value = 1.3 FpSpread1.ActiveSheet.Cells(10, 0).Text = "3rd" FpSpread1.ActiveSheet.Cells(10, 1).Text = "July" FpSpread1.ActiveSheet.Cells(10, 3).Value = 1.7 FpSpread1.ActiveSheet.Cells(11, 1).Text = "Aug" FpSpread1.ActiveSheet.Cells(11, 3).Value = 1.6 FpSpread1.ActiveSheet.Cells(12, 1).Text = "Sept" FpSpread1.ActiveSheet.Cells(12, 3).Value = 2.1 FpSpread1.ActiveSheet.Cells(13, 0).Text = "4th" FpSpread1.ActiveSheet.Cells(13, 1).Text = "Oct" FpSpread1.ActiveSheet.Cells(13, 3).Value = 1.4 FpSpread1.ActiveSheet.Cells(14, 1).Text = "Nov" FpSpread1.ActiveSheet.Cells(14, 3).Value = 2.0 FpSpread1.ActiveSheet.Cells(15, 1).Text = "Dec" FpSpread1.ActiveSheet.Cells(15, 2).Text = "Wk1" FpSpread1.ActiveSheet.Cells(15, 3).Value = 3.0 FpSpread1.ActiveSheet.AddChart(New FarPoint.Win.Spread.Model.CellRange(0, 0, 16, 4), GetType(FarPoint.Win.Chart.TreemapSeries), 550, 450, 300, 0) Dim treeseries As FarPoint.Win.Chart.TreemapSeries = DirectCast(FpSpread1.Sheets(0).Charts(0).Model.PlotAreas(0).Series(0), FarPoint.Win.Chart.TreemapSeries) treeseries.Fills.AddRange(New FarPoint.Win.Chart.Fill() {New FarPoint.Win.Chart.SolidFill(Color.MediumSeaGreen), Nothing, Nothing, Nothing, Nothing}) |
次のサンプルコードは、上で示した図のとおりに各データアイテムに色をマッピングします。
C# |
コードのコピー
|
---|---|
FarPoint.Win.Chart.TreemapSeries series = new FarPoint.Win.Chart.TreemapSeries(); series.Values.AddRange(new double[] { 3.5, 1.2, 0.8, 0.6, 0.5, 1.7, 1.1, 0.7, 1.3, 2.0 }); series.Fills.AddRange(new FarPoint.Win.Chart.Fill[] { new FarPoint.Win.Chart.SolidFill(Color.Blue), new FarPoint.Win.Chart.SolidFill(Color.Aqua), new FarPoint.Win.Chart.SolidFill(Color.Coral), new FarPoint.Win.Chart.SolidFill(Color.Lavender), new FarPoint.Win.Chart.SolidFill(Color.Lavender), new FarPoint.Win.Chart.SolidFill(Color.Lavender), new FarPoint.Win.Chart.SolidFill(Color.Lavender), new FarPoint.Win.Chart.SolidFill(Color.Olive), new FarPoint.Win.Chart.SolidFill(Color.Orange), new FarPoint.Win.Chart.SolidFill(Color.Beige), new FarPoint.Win.Chart.SolidFill(Color.Firebrick), new FarPoint.Win.Chart.SolidFill(Color.Gray), new FarPoint.Win.Chart.SolidFill(Color.Magenta) }); FarPoint.Win.Chart.StringCollectionItem collection1 = new FarPoint.Win.Chart.StringCollectionItem(); collection1.AddRange(new String[] { "1st", "", "", "", "", "", "2nd", "", "", "3rd" }); FarPoint.Win.Chart.StringCollectionItem collection2 = new FarPoint.Win.Chart.StringCollectionItem(); collection2.AddRange(new String[] { "Jan", "Feb", "", "", "", "Mar", "Apr", "May", "June", "July" }); FarPoint.Win.Chart.StringCollectionItem collection3 = new FarPoint.Win.Chart.StringCollectionItem(); collection3.AddRange(new String[] { "", "Week1", "Week2", "Week3", "Week4", "", "", "", "", "" }); series.CategoryNames.AddRange(new FarPoint.Win.Chart.StringCollectionItem[] { collection1, collection2, collection3 }); FarPoint.Win.Chart.TreemapPlotArea plotArea = new FarPoint.Win.Chart.TreemapPlotArea(); plotArea.Location = new PointF(0.2f, 0.2f); plotArea.Size = new SizeF(0.6f, 0.6f); plotArea.Series.Add(series); FarPoint.Win.Chart.ChartModel model = new FarPoint.Win.Chart.ChartModel(); model.PlotAreas.Add(plotArea); FarPoint.Win.Spread.Chart.SpreadChart chart = new FarPoint.Win.Spread.Chart.SpreadChart(); chart.Size = new Size(500, 500); chart.Location = new Point(50, 50); chart.Model = model; fpSpread1.Sheets[0].Charts.Add(chart); |
Visual Basic |
コードのコピー
|
---|---|
Dim series As New FarPoint.Win.Chart.TreemapSeries() series.Values.AddRange(New Double() {3.5, 1.2, 0.8, 0.6, 0.5, 1.7, 1.1, 0.7, 1.3, 2.0}) series.Fills.AddRange(New FarPoint.Win.Chart.Fill() {New FarPoint.Win.Chart.SolidFill(Color.Blue), New FarPoint.Win.Chart.SolidFill(Color.Aqua), New FarPoint.Win.Chart.SolidFill(Color.Coral), New FarPoint.Win.Chart.SolidFill(Color.Lavender), New FarPoint.Win.Chart.SolidFill(Color.Lavender), New FarPoint.Win.Chart.SolidFill(Color.Lavender), New FarPoint.Win.Chart.SolidFill(Color.Lavender), New FarPoint.Win.Chart.SolidFill(Color.Olive), New FarPoint.Win.Chart.SolidFill(Color.Orange), New FarPoint.Win.Chart.SolidFill(Color.Beige), New FarPoint.Win.Chart.SolidFill(Color.Firebrick), New FarPoint.Win.Chart.SolidFill(Color.Gray), New FarPoint.Win.Chart.SolidFill(Color.Magenta)}) Dim collection1 As New FarPoint.Win.Chart.StringCollectionItem() collection1.AddRange(New [String]() {"1st", "", "", "", "", "", "2nd", "", "", "3rd"}) Dim collection2 As New FarPoint.Win.Chart.StringCollectionItem() collection2.AddRange(New [String]() {"Jan", "Feb", "", "", "", "Mar", "Apr", "May", "June", "July"}) Dim collection3 As New FarPoint.Win.Chart.StringCollectionItem() collection3.AddRange(New [String]() {"", "Week1", "Week2", "Week3", "Week4", "", "", "", "", ""}) series.CategoryNames.AddRange(New FarPoint.Win.Chart.StringCollectionItem() {collection1, collection2, collection3}) Dim plotArea As New FarPoint.Win.Chart.TreemapPlotArea() plotArea.Location = New PointF(0.2F, 0.2F) plotArea.Size = New SizeF(0.6F, 0.6F) plotArea.Series.Add(series) Dim model As New FarPoint.Win.Chart.ChartModel() model.PlotAreas.Add(plotArea) Dim chart As New FarPoint.Win.Spread.Chart.SpreadChart() chart.Size = New Size(500, 500) chart.Location = New Point(50, 50) chart.Model = model FpSpread1.Sheets(0).Charts.Add(chart) |