棒グラフと円グラフは、単一の値を使用して各データ点(価格、在庫数、または再注文レベル)を表します。それに対し、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;
|
|