棒グラフと円グラフは、単一の値を使用して各データ点(価格、在庫数、または再注文レベル)を表します。それに対し、XY プロットグラフは、各データ点を表すのに2つの値を使用します。これらは、2次元のデータ間の関係を示す場合に便利で、データの統計分析でよく使用されます。
たとえば、以下のグラフは製品の単価と売上の関係を表した XY プロットを示します。
この種類のグラフは、変数間の関係を数量化する統計方法(一般的には、線形回帰分析)をサポートするためによく使用されます。たとえば、上記のグラフは相対的に他のデータ点から離れている 250 ドルより高い単価を持つ点を示します。線形回帰では、このデータ点は「異常値」と呼ばれ、データセットの他のデータ点より分析結果に大きく影響します。
XY プロットグラフもそれ自体、関係の質的な局面を示す場合に便利です。たとえば、単価に関連する売上はどうでしょうか?この例では、データは特定の関係があると示唆するようにみえます。おそらく、顧客は高価な製品は NorthWind から購買し、安価な製品は地域のスーパーマーケットで購買することを選びます。
グラフの作成に使用するコードは以下のとおりです。これは、棒グラフの作成に使用したコードと非常に類似していますが、この場合、一連のX 値だけを使用する代わりに、X 値と Y 値を設定している点が異なります。
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
---|---|
' グラフデータを取得します。 Dim data As DataView = _dataSet.Tables("Sales").DefaultView data.Sort = "UnitPrice" ' グラフを設定します。 C1Chart1.Reset() C1Chart1.ChartGroups(0).ChartType = Chart2DTypeEnum.XYPlot ' 「製品価格 vs 売上」データセットを作成します。 Dim dscoll As ChartDataSeriesCollection = _ C1Chart1.ChartGroups(0).ChartData.SeriesList; dscoll.Clear(); Dim series As ChartDataSeries = dscoll.AddNewSeries() ' シンボルのみを表示します(線は非表示)。 series.SymbolStyle.Color = Color.Green series.SymbolStyle.OutlineColor = Color.Black series.LineStyle.Pattern = LinePatternEnum.None ' データセットにデータを入力します。 series.PointData.Length = data.Count Dim i As Integer For i = 0 To data.Count ? 1 series.X(i) = data(i)("UnitPrice") series.Y(i) = data(i)("ProductSales") Next I ' 製品名を X 軸に添付します。 Dim ax As Axis = C1Chart1.ChartArea.AxisX ax.Text = "Unit Price (US$)" ax.AnnoFormat = FormatEnum.NumericCurrency ax.GridMajor.Visible = True ' Y 軸を設定します。 Dim ay As Axis = C1Chart1.ChartArea.AxisY ay.Text = "Sales (thousand US$)" ay.AnnoFormat = FormatEnum.NumericManual ay.AnnoFormatString = "$#,##0," ay.GridMajor.Visible = True |
C# コードの書き方
C# |
コードのコピー
|
---|---|
// グラフデータを取得します。 DataView data = _dataSet.Tables["Sales"].DefaultView; data.Sort = "UnitPrice"; // グラフを設定します。 c1Chart1.Reset(); c1Chart1.ChartGroups[0].ChartType = Chart2DTypeEnum.XYPlot; // 「製品価格 vs 売上」データセットを作成します。 ChartDataSeriesCollection dscoll = c1Chart1.ChartGroups[0].ChartData.SeriesList; dscoll.Clear(); ChartDataSeries series = dscoll.AddNewSeries(); // シンボルのみを表示します(線は非表示)。 series.SymbolStyle.Color = Color.Green; series.SymbolStyle.OutlineColor = Color.Black; series.LineStyle.Pattern = LinePatternEnum.None; // データセットにデータを入力します。 series.PointData.Length = data.Count; for (int i = 0; i < data.Count; i++) { series.X[i] = data[i]["UnitPrice"]; series.Y[i] = data[i]["ProductSales"]; } // 製品名を X 軸に添付します。 Axis ax = c1Chart1.ChartArea.AxisX; ax.Text = "Unit Price (US$)"; ax.AnnoFormat = FormatEnum.NumericCurrency; ax.GridMajor.Visible = true; // Y 軸を設定します。 Axis ay = c1Chart1.ChartArea.AxisY; ay.Text = "Sales (thousand US$)"; ay.AnnoFormat = FormatEnum.NumericManual; ay.AnnoFormatString = "$#,##0,"; ay.GridMajor.Visible = true; |