チャートの作成と管理
チャートの作成
単純なチャートの作成
Aspose.Cellsで次の例コードを使用して簡単にチャートを作成できます:
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(); | |
// Obtaining the reference of the first worksheet | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Adding sample values to cells | |
worksheet.Cells["A2"].PutValue("Category1"); | |
worksheet.Cells["A3"].PutValue("Category2"); | |
worksheet.Cells["A4"].PutValue("Category3"); | |
worksheet.Cells["B1"].PutValue("Column1"); | |
worksheet.Cells["B2"].PutValue(4); | |
worksheet.Cells["B3"].PutValue(20); | |
worksheet.Cells["B4"].PutValue(50); | |
worksheet.Cells["C1"].PutValue("Column2"); | |
worksheet.Cells["C2"].PutValue(50); | |
worksheet.Cells["C3"].PutValue(100); | |
worksheet.Cells["C4"].PutValue(150); | |
// Adding a chart to the worksheet | |
int chartIndex = worksheet.Charts.Add(Aspose.Cells.Charts.ChartType.Column, 5, 0, 15, 5); | |
// Accessing the instance of the newly added chart | |
Aspose.Cells.Charts.Chart chart = worksheet.Charts[chartIndex]; | |
// Setting chart data source as the range "A1:C4" | |
chart.SetChartDataRange("A1:C4", true); | |
// Saving the Excel file | |
workbook.Save(dataDir + "output.xls"); | |
チャート作成のための注意事項
Aspose.Cellsを使用してチャートを作成する際に役立ついくつかの基本的な概念を理解することが重要です。
チャートオブジェクト
Aspose.Cellsは、Aspose.Cellsでサポートされているチャートを作成するために使用されるAspose.Cells.Chartsネームスペース内の特別なクラスを提供します。これらのクラスは、チャートオブジェクトとして機能するチャートの構築ブロックとして使用されます。以下に、チャートオブジェクトがリストされています:
- シリーズ、チャート内の単一のデータシリーズ。
- 軸、チャートの軸。
- Chart, 単一のExcelグラフ。
- ChartArea, ワークシート内のグラフエリア。
- ChartDataTable, グラフデータテーブル。
- ChartFrame, グラフ内のフレームオブジェクト。
- ChartPoint, グラフ内のシリーズの単一のポイント。
- ChartPointCollection, 1つのシリーズ内のすべてのポイントを含むコレクション。
- Charts, Chartオブジェクトのコレクション。
- DataLabels, 指定されたシリーズのすべてのDataLabelオブジェクトのコレクション。
- FillFormat, シェイプの塗りつぶし形式。
- Floor, 3Dグラフの床。
- Legend, グラフの凡例。
- Line, グラフの線。
- SeriesCollection, Seriesオブジェクトのコレクション。
- TickLabels, グラフ軸の目盛りのラベル。
- Title, グラフまたは軸のタイトル。
- Trendline, グラフ内のトレンドライン。
- TrendlineCollection, 指定されたデータシリーズのすべてのTrendlineオブジェクトのコレクション。
- Walls, 3Dグラフの壁。
Chartingオブジェクトの使用
上記のように、すべてのチャートオブジェクトはそれぞれのクラスのインスタンスであり、特定のタスクを実行するための特定のプロパティとメソッドを提供します。チャートオブジェクトを使用して、チャートを作成します。
ワークシートに任意の種類のチャートを追加するには、Chartsのコレクションを使用します。Chartsのコレクション内の各アイテムはChartオブジェクトを表します。Chartオブジェクトはグラフの外観をカスタマイズするために必要な他のすべてのチャートオブジェクトをカプセル化します。次のセクションでは、いくつかの基本的なチャートオブジェクトを使用して、単純なチャートを作成する方法を示します。
Aspose.Cellsを使用したチャートの作成
手順:
- CellオブジェクトのPutValueメソッドを使用してワークシートセルにデータを追加します。 これはグラフのデータソースとして使用されます。
- ChartsコレクションのAddメソッドを呼び出してワークシートにチャートを追加します。これはWorksheetオブジェクトにカプセル化されています。
- ChartType列挙型を使用してチャートのタイプを指定します。 たとえば、以下の例では、ChartType.Pyramid値をチャートの種類として使用しています。
- インデックスを渡してChartsコレクションから新しいChartオブジェクトをアクセスします。
- Chartオブジェクトにカプセル化されたチャートの管理に使用できるいずれかのチャートオブジェクトを使用します。 以下の例では、SeriesCollectionチャートオブジェクトを使用して、チャートのデータソースを指定します。
チャートにソースデータを追加する場合、データソースはセルの範囲(“A1:C3"など)、非連続セルのシーケンス(“A1, A3, A5"など)、値のシーケンス(“1,2,3"など)のいずれかです。
これらの一般的な手順を使用すると、任意のタイプのチャートを作成できます。異なるチャートオブジェクトを使用して、異なるチャートを作成します。
Aspose.Cellsでさまざまな種類のチャートを作成することが可能です。Aspose.Cellsでサポートされているすべての標準チャートは、Aspose.Cells.Charts.ChartTypeという名前の列挙型で事前定義されています。
事前定義されたチャートの種類は:
チャートの種類 | 説明 |
---|---|
Column | クラスタ化された列チャートを表します。 |
ColumnStacked | 積み上げ列チャートを表します。 |
Column100PercentStacked | 100% 積み上げ列チャートを表します。 |
Column3DClustered | 3D クラスタ化された列チャートを表します。 |
Column3DStacked | 3D 積み上げ列チャートを表します。 |
Column3D100PercentStacked | 3D 100% 積み上げ列チャートを表します。 |
Column3D | 3D 列チャートを表します。 |
Bar | クラスタ化された棒チャートを表します。 |
BarStacked | 積み上げ棒チャートを表します。 |
Bar100PercentStacked | 100% 積み上げ棒チャートを表します。 |
Bar3DClustered | 3D クラスタ化された棒チャートを表します。 |
Bar3DStacked | 3D 積み上げ棒チャートを表します。 |
Bar3D100PercentStacked | 3D 100% 積み上げ棒チャートを表します。 |
Line | 折れ線チャートを表します。 |
LineStacked | 積み上げ折れ線チャートを表します。 |
Line100PercentStacked | 100% 積み上げ折れ線チャートを表します。 |
LineWithDataMarkers | データマーカー付きの折れ線チャートを表します。 |
LineStackedWithDataMarkers | データマーカー付きの積み上げ折れ線チャートを表します。 |
Line100PercentStackedWithDataMarkers | データマーカー付きの100% 積み上げ折れ線チャートを表します。 |
Line3D | 3D 折れ線チャートを表します。 |
Pie | 円グラフを表します。 |
Pie3D | 3D 円グラフを表します。 |
PiePie | パイ オブ パイ チャートを表します。 |
PieExploded | 分解された円グラフを表します。 |
Pie3DExploded | 3Dエクスプロード円グラフを表します |
PieBar | パイチャートのバーを表します |
Scatter | 散布図を表します |
ScatterConnectedByCurvesWithDataMarker | データマーカー付きの曲線で接続された散布図を表します |
ScatterConnectedByCurvesWithoutDataMarker | データマーカーなしの曲線で接続された散布図を表します |
ScatterConnectedByLinesWithDataMarker | データマーカー付きの線で接続された散布図を表します |
ScatterConnectedByLinesWithoutDataMarker | データマーカーなしの線で接続された散布図を表します |
Area | エリアチャートを表します |
AreaStacked | 積み上げエリアチャートを表します |
Area100PercentStacked | 100% 積み上げエリアチャートを表します |
Area3D | 3Dエリアチャートを表します |
Area3DStacked | 3D積み上げエリアチャートを表します |
Area3D100PercentStacked | 3D 100% 積み上げエリアチャートを表します |
Doughnut | ドーナツチャートを表します |
DoughnutExploded | 分裂したドーナツチャートを表します |
Radar | レーダーチャートを表します |
RadarWithDataMarkers | データマーカー付きのレーダーチャートを表します |
RadarFilled | 塗りつぶしのレーダーチャートを表します |
Surface3D | 3Dサーフェスチャートを表します |
SurfaceWireframe3D | ワイヤーフレーム3Dサーフェスチャートを表します |
SurfaceContour | 等高線チャートを表します |
SurfaceContourWireframe | ワイヤーフレーム等高線チャートを表します |
Bubble | バブルチャートを表します |
Bubble3D | 3Dバブルチャートを表します |
Cylinder | シリンダーチャートを表します |
CylinderStacked | 積み上げシリンダーチャートを表します |
Cylinder100PercentStacked | 100% 積み上げシリンダーチャートを表します |
CylindericalBar | 円柱形バーチャートを表します |
CylindericalBarStacked | 積み上げ円柱形バーチャートを表します |
CylindericalBar100PercentStacked | 100% 積み上げ円柱形バーチャートを表します |
CylindericalColumn3D | 3D円柱チャートを表します |
Cone | 円錐チャートを表します |
ConeStacked | 積み重ね円錐チャートを表します |
Cone100PercentStacked | 100% 積み重ね円錐チャートを表します |
ConicalBar | 円錐バーチャートを表します |
ConicalBarStacked 積み重ね円錐バーチャートを表します | |
ConicalBar100PercentStacked | 100% 積み重ね円錐バーチャートを表します |
ConicalColumn3D | 3D円錐柱チャートを表します |
Pyramid | ピラミッドチャートを表します |
PyramidStacked | 積み重ねピラミッドチャートを表します |
Pyramid100PercentStacked | 100% 積み重ねピラミッドチャートを表します |
PyramidBar | ピラミッドバーチャートを表します |
PyramidBarStacked | 積み重ねピラミッドバーチャートを表します |
PyramidBar100PercentStacked | 100% 積み重ねピラミッドバーチャートを表します |
PyramidColumn3D | 3Dピラミッド柱チャートを表します |
セルの範囲をデータソースとして割り当てると、左上から右下までの範囲を設定できます。例えば、“A1:C3"は有効ですが、“C3:A1"は無効です。
|
ピラミッドチャート
例のコードを実行すると、ワークシートにピラミッドチャートが追加されます。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(); | |
// Adding a new worksheet to the Excel object | |
int sheetIndex = workbook.Worksheets.Add(); | |
// Obtaining the reference of the newly added worksheet by passing its sheet index | |
Worksheet worksheet = workbook.Worksheets[sheetIndex]; | |
// Adding sample values to cells | |
worksheet.Cells["A1"].PutValue(50); | |
worksheet.Cells["A2"].PutValue(100); | |
worksheet.Cells["A3"].PutValue(150); | |
worksheet.Cells["B1"].PutValue(4); | |
worksheet.Cells["B2"].PutValue(20); | |
worksheet.Cells["B3"].PutValue(50); | |
// Adding a chart to the worksheet | |
int chartIndex = worksheet.Charts.Add(Aspose.Cells.Charts.ChartType.Pyramid, 5, 0, 15, 5); | |
// Accessing the instance of the newly added chart | |
Aspose.Cells.Charts.Chart chart = worksheet.Charts[chartIndex]; | |
// Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3" | |
chart.NSeries.Add("A1:B3", true); | |
// Saving the Excel file | |
workbook.Save(dataDir + "output.xls"); | |
折れ線グラフ
上記の例では、ChartTypeをLineに変更するだけで、折れ線グラフが作成されます。完全なソースは以下に提供されています。コードを実行すると、ワークシートに折れ線グラフが追加されます。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(); | |
// Adding a new worksheet to the Excel object | |
int sheetIndex = workbook.Worksheets.Add(); | |
// Obtaining the reference of the newly added worksheet by passing its sheet index | |
Worksheet worksheet = workbook.Worksheets[sheetIndex]; | |
// Adding sample values to cells | |
worksheet.Cells["A1"].PutValue(50); | |
worksheet.Cells["A2"].PutValue(100); | |
worksheet.Cells["A3"].PutValue(150); | |
worksheet.Cells["B1"].PutValue(4); | |
worksheet.Cells["B2"].PutValue(20); | |
worksheet.Cells["B3"].PutValue(50); | |
// Adding a chart to the worksheet | |
int chartIndex = worksheet.Charts.Add(Aspose.Cells.Charts.ChartType.Line, 5, 0, 15, 5); | |
// Accessing the instance of the newly added chart | |
Aspose.Cells.Charts.Chart chart = worksheet.Charts[chartIndex]; | |
// Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3" | |
chart.NSeries.Add("A1:B3", true); | |
// Saving the Excel file | |
workbook.Save( dataDir + "output.xls"); | |
バブルチャート
バブルチャートを作成するには、ChartTypeをChartType.Bubbleに設定し、BubbleSizes、Values、XValuesなどの追加のプロパティを適切に設定する必要があります。次のコードを実行すると、ワークシートにバブルチャートが追加されます。
データマーカー付きラインチャート
データマーカー付きラインチャートを作成するには、ChartTypeをChartType.LineWithDataMarkersに設定し、バックグラウンドエリア、シリーズマーカー、Values、XValuesなどの追加のプロパティを適切に設定する必要があります。次のコードを実行すると、ワークシートにデータマーカー付きラインチャートが追加されます。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// Instantiate a workbook | |
Workbook workbook = new Workbook(); | |
// Access first worksheet | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Set columns title | |
worksheet.Cells[0, 0].Value = "X"; | |
worksheet.Cells[0, 1].Value = "Y"; | |
// Random data shall be used for generating the chart | |
Random R = new Random(); | |
// Create random data and save in the cells | |
for (int i = 1; i < 21; i++) | |
{ | |
worksheet.Cells[i, 0].Value = i; | |
worksheet.Cells[i, 1].Value = 0.8; | |
} | |
for (int i = 21; i < 41; i++) | |
{ | |
worksheet.Cells[i, 0].Value = i - 20; | |
worksheet.Cells[i, 1].Value = 0.9; | |
} | |
// Add a chart to the worksheet | |
int idx = worksheet.Charts.Add(ChartType.LineWithDataMarkers, 1, 3, 20, 20); | |
// Access the newly created chart | |
Chart chart = worksheet.Charts[idx]; | |
// Set chart style | |
chart.Style = 3; | |
// Set autoscaling value to true | |
chart.AutoScaling = true; | |
// Set foreground color white | |
chart.PlotArea.Area.ForegroundColor = Color.White; | |
// Set Properties of chart title | |
chart.Title.Text = "Sample Chart"; | |
// Set chart type | |
chart.Type = ChartType.LineWithDataMarkers; | |
// Set Properties of categoryaxis title | |
chart.CategoryAxis.Title.Text = "Units"; | |
//Set Properties of nseries | |
int s2_idx = chart.NSeries.Add("A2: A2", true); | |
int s3_idx = chart.NSeries.Add("A22: A22", true); | |
// Set IsColorVaried to true for varied points color | |
chart.NSeries.IsColorVaried = true; | |
// Set properties of background area and series markers | |
chart.NSeries[s2_idx].Area.Formatting = FormattingType.Custom; | |
chart.NSeries[s2_idx].Marker.Area.ForegroundColor = Color.Yellow; | |
chart.NSeries[s2_idx].Marker.Border.IsVisible = false; | |
// Set X and Y values of series chart | |
chart.NSeries[s2_idx].XValues = "A2: A21"; | |
chart.NSeries[s2_idx].Values = "B2: B21"; | |
// Set properties of background area and series markers | |
chart.NSeries[s3_idx].Area.Formatting = FormattingType.Custom; | |
chart.NSeries[s3_idx].Marker.Area.ForegroundColor = Color.Green; | |
chart.NSeries[s3_idx].Marker.Border.IsVisible = false; | |
// Set X and Y values of series chart | |
chart.NSeries[s3_idx].XValues = "A22: A41"; | |
chart.NSeries[s3_idx].Values = "B22: B41"; | |
// Save the workbook | |
workbook.Save(outputDir + @"LineWithDataMarkerChart.xlsx", Aspose.Cells.SaveFormat.Xlsx); |