チャートのカスタマイズ
チャートの作成
Aspose.Cells を使用して、さまざまなチャートをスプレッドシートに追加することができます。Aspose.Cells は、多くの柔軟なチャート オブジェクトを提供します。このトピックでは、Aspose.Cells' チャート オブジェクトについて説明します。
単純なチャートの作成
次のコード例を使用して、Aspose.Cells のグラフを簡単に作成できます。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the output directory. | |
Workbook workbook = new Workbook(); | |
// Obtaining the reference of the first worksheet | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Adding sample values to cells | |
worksheet.getCells().get("A2").putValue("Category1"); | |
worksheet.getCells().get("A3").putValue("Category2"); | |
worksheet.getCells().get("A4").putValue("Category3"); | |
worksheet.getCells().get("B1").putValue("Column1"); | |
worksheet.getCells().get("B2").putValue(4); | |
worksheet.getCells().get("B3").putValue(20); | |
worksheet.getCells().get("B4").putValue(50); | |
worksheet.getCells().get("C1").putValue("Column2"); | |
worksheet.getCells().get("C2").putValue(50); | |
worksheet.getCells().get("C3").putValue(100); | |
worksheet.getCells().get("C4").putValue(150); | |
// Adding a chart to the worksheet | |
int chartIndex = worksheet.getCharts().add(ChartType.COLUMN, 5, 0, 15, 5); | |
// Accessing the instance of the newly added chart | |
Chart chart = worksheet.getCharts().get(chartIndex); | |
// Setting chart data source as the range "A1:C4" | |
chart.setChartDataRange("A1:C4", true); | |
workbook.save( "ColumnChart.xlsx", SaveFormat.XLSX); |
グラフを作成するための注意事項
グラフを作成する前に、Aspose.Cells を使用してグラフを作成するときに役立ついくつかの基本概念を理解することが重要です。
グラフ オブジェクト
Aspose.Cells は、あらゆる種類のチャートを作成するために使用される特別なクラスのセットを提供します。これらのクラスは、作成するために使用されますグラフ オブジェクト、チャートの構成要素として機能します。チャート オブジェクトは次のとおりです。
- 軸、グラフの軸。
- チャート、単一の Excel グラフ。
- チャートエリア、ワークシートのグラフ領域。
- チャートデータテーブル、グラフ データ テーブル。
- ChartFrame、チャート内のフレーム オブジェクト。
- チャートポイント、チャートの系列の単一ポイント。
- ChartPointCollection、1 つのシリーズのすべてのポイントを含むコレクション。
- ChartCollection 、のコレクションチャートオブジェクト。
- DataLabels、指定された DataLabelsシリーズ, チャートポイント, トレンドラインなど
- FillFormat、形状の塗りつぶし形式。
- 床、3D チャートの下限。
- 伝説、チャートの凡例。
- ライン、チャート ライン。
- シリーズコレクション 、のコレクションシリーズオブジェクト。
- シリーズは、グラフ内の単一のデータ シリーズを表します。
- 目盛りラベル、チャート軸の目盛りに関連付けられた目盛りラベル。
- 題名、チャートまたは軸のタイトル。
- トレンドライン、チャートの傾向線。
- トレンドライン コレクション、指定されたデータ シリーズのすべての Trendline オブジェクトのコレクション。
- 壁、3D グラフの壁。
チャート オブジェクトの使用
前述のように、すべてのチャート オブジェクトはそれぞれのクラスのインスタンスであり、特定のタスクを実行するための特定のプロパティとメソッドを提供します。チャート オブジェクトを使用してチャートを作成します。
を使用して、任意の種類のグラフをワークシートに追加します。ChartCollectionコレクション。の各項目ChartCollectionコレクションはチャート物体。あチャートオブジェクトは、チャートの外観をカスタマイズするために必要なすべてのチャート オブジェクトをカプセル化します。次のセクションでは、いくつかの基本的なチャート オブジェクトを使用して単純なチャートを作成する方法を示します。
簡単なチャートの作成
Aspose.Cells を使用して、さまざまな種類のチャートを作成できます。Aspose.Cells でサポートされているすべての標準チャートは、列挙型で事前に定義されています。グラフの種類.定義済みのグラフの種類は次のとおりです。
グラフの種類 | 説明 |
---|---|
桁 | 集合縦棒グラフを表します |
積み上げ列 | 積み上げ縦棒グラフを表します |
Column100PercentStacked | 100% 積み上げ縦棒グラフを表します |
列 3DClustered | 立体集合縦棒グラフを表します |
Column3D積み上げ | 3D 積み上げ縦棒グラフを表します |
Column3D100PercentStacked | 3D 100% 積み上げ縦棒グラフを表します |
列 3D | 3D 縦棒グラフを表します |
バー | 集合棒グラフを表します |
棒積み上げ | 積み上げ棒グラフを表します |
Bar100Percent積み上げ | 100% 積み上げ棒グラフを表します |
Bar3DClustered | 3D 集合棒グラフを表します |
Bar3D積み上げ | 3D 積み上げ棒グラフを表します |
Bar3D100PercentStacked | 3D 100% 積み上げ棒グラフを表します |
ライン | 折れ線グラフを表します |
LineStacked | 積み上げ折れ線グラフを表します |
Line100PercentStacked | 100% 積み上げ折れ線グラフを表します |
LineWithDataMarkers | データ マーカー付きの折れ線グラフを表します |
LineStackedWithDataMarkers | データ マーカー付きの積み上げ折れ線グラフを表します |
Line100PercentStackedWithDataMarkers | データ マーカー付きの 100% 積み上げ折れ線グラフを表します |
Line3D | 3D 折れ線グラフを表します |
パイ | 円グラフを表します |
Pie3D | 3D 円グラフを表します |
パイパイ | 円グラフの円を表します |
パイ爆発 | 分解円グラフを表します |
Pie3DExploded | 3D 分解円グラフを表します |
パイバー | 円グラフのバーを表します |
散布 | 散布図を表します |
ScatterConnectedByCurvesWithDataMarker | データ マーカー付きの曲線で接続された散布図を表します |
ScatterConnectedByCurvesWithoutDataMarker | データ マーカーのない、曲線で接続された散布図を表します |
ScatterConnectedByLinesWithDataMarker | データ マーカー付きの線で結ばれた散布図を表します |
ScatterConnectedByLinesWithoutDataMarker | データ マーカーのない、線で結ばれた散布図を表します |
範囲 | 面グラフを表します |
エリア積み上げ | 積み上げ面グラフを表します |
Area100PercentStacked | 100% 積み上げ面グラフを表します |
エリア3D | 3D 面グラフを表します |
Area3D積み上げ | 3D 積み上げ面グラフを表します |
Area3D100PercentStacked | 3D 100% 積み上げ面グラフを表します |
ドーナツ | ドーナツ チャートを表します |
ドーナツ爆発 | 展開されたドーナツ グラフを表します |
レーダー | レーダー チャートを表します |
RadarWithDataMarkers | レーダー チャートをデータ マーカーで表します |
レーダーいっぱい | 塗りつぶされたレーダー チャートを表します |
Surface3D | 3D 等高線図を表します |
SurfaceWireframe3D | ワイヤーフレーム 3D 等高線図を表します |
表面輪郭 | 等高線図を表します |
SurfaceContourWireframe | ワイヤーフレーム等高線図を表します |
バブル | バブル チャートを表します |
バブル3D | 3D バブル チャートを表します |
シリンダー | 円柱グラフを表します |
円柱積み上げ | 積み上げ円柱グラフを表します |
円柱 100%積み上げ | 100% 積み上げ円柱グラフを表します |
円柱棒 | 円柱棒グラフを表します。 |
円柱棒積み上げ | 積み上げ円筒棒グラフを表します |
CylindricalBar100PercentStacked | 100% 積み上げ円柱棒グラフを表します |
円筒柱 3D | 3D 円柱縦棒グラフを表します |
円錐 | コーン チャートを表します |
円錐積み上げ | 積み上げ円錐グラフを表します |
円錐 100% 積み上げ | 100% 積み上げ円錐グラフを表します |
円錐バー | 円錐棒グラフを表します |
円錐棒積み上げ | 積み上げ円錐棒グラフを表します |
ConicalBar100PercentStacked | 100% 積み上げ円錐棒グラフを表します |
ConicalColumn3D | 3D 円錐縦棒グラフを表します |
ピラミッド | ピラミッド チャートを表します |
ピラミッド積み上げ | 積み上げピラミッド チャートを表します |
Pyramid100PercentStacked | 100% 積み上げピラミッド チャートを表します |
ピラミッドバー | ピラミッド棒グラフを表します |
ピラミッド棒積み上げ | 積み上げピラミッド棒グラフを表します |
PyramidBar100PercentStacked | 100% 積み上げピラミッド棒グラフを表します |
PyramidColumn3D | 3D ピラミッド縦棒グラフを表します |
Aspose.Cells を使用してグラフを作成するには: |
- を使用して、ワークシートのセルにデータを追加します。CellオブジェクトのsetValue方法。 これは、グラフのデータ ソースとして使用されます。
- を呼び出して、ワークシートにグラフを追加します。ChartCollectionコレクションの[追加](https://reference.aspose.com/cells/java/com.aspose.cells/chartcollection#add(int,%20int,%20int,%20int,%20int) メソッド、カプセル化されたワークシート物体。
- でグラフの種類を指定しますグラフの種類列挙。 たとえば、この例ではChartType.PYRAMID値をグラフ タイプとして指定します。
- 新しいチャートからのオブジェクトChartCollectionインデックスを渡すことによってコレクション。
- にカプセル化されたチャート オブジェクトのいずれかを使用します。チャートチャートを管理するオブジェクト。 以下の例では、シリーズコレクションcharting オブジェクトを使用して、チャートのデータ ソースを指定します。
ソース データをグラフに追加する場合、データ ソースはセルの範囲 (「A1:C3」など)、連続していないセルのシーケンス (「A1、A3、A5」など)、または一連のセルのいずれかです。値 (「1,2,3」など)。
これらの一般的な手順により、あらゆる種類のグラフを作成できます。さまざまなチャート オブジェクトを使用して、さまざまなチャートを作成します。
サンプル コードを実行すると、次のようにピラミッド チャートがワークシートに追加されます。
ピラミッド チャートとそのデータ ソース
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(HowToCreatePyramidChart.class) + "charts/"; | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(); | |
// Obtaining the reference of the first worksheet | |
WorksheetCollection worksheets = workbook.getWorksheets(); | |
Worksheet sheet = worksheets.get(0); | |
// Adding some sample value to cells | |
Cells cells = sheet.getCells(); | |
Cell cell = cells.get("A1"); | |
cell.setValue(50); | |
cell = cells.get("A2"); | |
cell.setValue(100); | |
cell = cells.get("A3"); | |
cell.setValue(150); | |
cell = cells.get("B1"); | |
cell.setValue(4); | |
cell = cells.get("B2"); | |
cell.setValue(20); | |
cell = cells.get("B3"); | |
cell.setValue(180); | |
cell = cells.get("C1"); | |
cell.setValue(320); | |
cell = cells.get("C2"); | |
cell.setValue(110); | |
cell = cells.get("C3"); | |
cell.setValue(180); | |
cell = cells.get("D1"); | |
cell.setValue(40); | |
cell = cells.get("D2"); | |
cell.setValue(120); | |
cell = cells.get("D3"); | |
cell.setValue(250); | |
ChartCollection charts = sheet.getCharts(); | |
// Adding a chart to the worksheet | |
int chartIndex = charts.add(ChartType.PYRAMID, 5, 0, 15, 5); | |
Chart chart = charts.get(chartIndex); | |
// Adding NSeries (chart data source) to the chart ranging from "A1" | |
// cell to "B3" | |
SeriesCollection serieses = chart.getNSeries(); | |
serieses.add("A1:B3", true); | |
// Saving the Excel file | |
workbook.save(dataDir + "HToCPyramidChart_out.xls"); | |
// Print message | |
System.out.println("Pyramid chart is successfully created."); |
バブル チャートを作成するには、グラフの種類に設定する必要がありますChartType.BUBBLEそれに応じて、BubbleSizes、Values、XValues などのいくつかの追加プロパティを設定する必要があります。次のコードを実行すると、以下に示すようにバブル チャートがワークシートに追加されます。
バブル チャートとそのデータ ソース
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(HowToCreateBubbleChart.class) + "charts/"; | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(); | |
// Obtaining the reference of the first worksheet | |
WorksheetCollection worksheets = workbook.getWorksheets(); | |
Worksheet sheet = worksheets.get(0); | |
// Adding some sample value to cells | |
Cells cells = sheet.getCells(); | |
Cell cell = cells.get("A1"); | |
cell.setValue(50); | |
cell = cells.get("A2"); | |
cell.setValue(100); | |
cell = cells.get("A3"); | |
cell.setValue(150); | |
cell = cells.get("B1"); | |
cell.setValue(4); | |
cell = cells.get("B2"); | |
cell.setValue(20); | |
cell = cells.get("B3"); | |
cell.setValue(180); | |
cell = cells.get("C1"); | |
cell.setValue(320); | |
cell = cells.get("C2"); | |
cell.setValue(110); | |
cell = cells.get("C3"); | |
cell.setValue(180); | |
cell = cells.get("D1"); | |
cell.setValue(40); | |
cell = cells.get("D2"); | |
cell.setValue(120); | |
cell = cells.get("D3"); | |
cell.setValue(250); | |
ChartCollection charts = sheet.getCharts(); | |
// Adding a chart to the worksheet | |
int chartIndex = charts.add(ChartType.BUBBLE, 5, 0, 15, 5); | |
Chart chart = charts.get(chartIndex); | |
// Adding NSeries (chart data source) to the chart ranging from "A1" | |
// cell to "B3" | |
SeriesCollection serieses = chart.getNSeries(); | |
serieses.add("A1:B3", true); | |
// Set bubble sizes | |
chart.getNSeries().get(0).setBubbleSizes("B2:D2"); | |
chart.getNSeries().get(0).setXValues("B3:D3"); | |
chart.getNSeries().get(0).setValues("B1:D1"); | |
// Saving the Excel file | |
workbook.save(dataDir + "HToCrBChart_out.xls"); | |
// Print message | |
System.out.println("Bubble chart is successfully created."); |
データ マーカー付き折れ線グラフ
データ マーカー チャートで線を作成するには、グラフの種類に設定する必要がありますChartType.LINE_WITH_DATA_MARKERSまた、背景領域、シリーズ マーカー、値、X 値などのいくつかの追加プロパティを適宜設定する必要があります。次のコードを実行すると、データ マーカー グラフを含む行がワークシートに追加されます。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Instantiate a workbook | |
Workbook workbook = new Workbook(); | |
// Access first worksheet | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Set columns title | |
worksheet.getCells().get(0, 0).setValue("X"); | |
worksheet.getCells().get(0, 1).setValue("Y"); | |
// Create random data and save in the cells | |
for (int i = 1; i < 21; i++) | |
{ | |
worksheet.getCells().get(i, 0).setValue(i); | |
worksheet.getCells().get(i, 1).setValue(0.8); | |
} | |
for (int i = 21; i < 41; i++) | |
{ | |
worksheet.getCells().get(i, 0).setValue(i - 20); | |
worksheet.getCells().get(i, 1).setValue(0.9); | |
} | |
// Add a chart to the worksheet | |
int idx = worksheet.getCharts().add(ChartType.LINE_WITH_DATA_MARKERS, 1, 3, 20, 20); | |
// Access the newly created chart | |
Chart chart = worksheet.getCharts().get(idx); | |
// Set chart style | |
chart.setStyle(3); | |
// Set autoscaling value to true | |
chart.setAutoScaling(true); | |
// Set foreground color white | |
chart.getPlotArea().getArea().setForegroundColor(Color.getWhite()); | |
// Set Properties of chart title | |
chart.getTitle().setText("Sample Chart"); | |
// Set chart type | |
chart.setType(ChartType.LINE_WITH_DATA_MARKERS); | |
// Set Properties of categoryaxis title | |
chart.getCategoryAxis().getTitle().setText("Units"); | |
//Set Properties of nseries | |
int s2_idx = chart.getNSeries().add("A2: A2", true); | |
int s3_idx = chart.getNSeries().add("A22: A22", true); | |
// Set IsColorVaried to true for varied points color | |
chart.getNSeries().setColorVaried(true); | |
// Set properties of background area and series markers | |
chart.getNSeries().get(s2_idx).getArea().setFormatting(FormattingType.CUSTOM); | |
chart.getNSeries().get(s2_idx).getMarker().getArea().setForegroundColor(Color.getYellow()); | |
chart.getNSeries().get(s2_idx).getMarker().getBorder().setVisible(false); | |
// Set X and Y values of series chart | |
chart.getNSeries().get(s2_idx).setXValues("A2: A21"); | |
chart.getNSeries().get(s2_idx).setValues("B2: B21"); | |
// Set properties of background area and series markers | |
chart.getNSeries().get(s3_idx).getArea().setFormatting(FormattingType.CUSTOM); | |
chart.getNSeries().get(s3_idx).getMarker().getArea().setForegroundColor(Color.getGreen()); | |
chart.getNSeries().get(s3_idx).getMarker().getBorder().setVisible(false); | |
// Set X and Y values of series chart | |
chart.getNSeries().get(s3_idx).setXValues("A22: A41"); | |
chart.getNSeries().get(s3_idx).setValues("B22: B41"); | |
// Save the workbook | |
workbook.save(outDir + "LineWithDataMarkerChart.xlsx", SaveFormat.XLSX); |
カスタム グラフの作成
これまでグラフについて説明してきたとき、標準の書式設定が設定された標準のグラフを見てきました。データ ソースを定義し、いくつかのプロパティを設定するだけで、チャートはデフォルトのフォーマット設定で作成されます。ただし、Aspose.Cells は、開発者が独自の形式設定でグラフを作成できるようにするカスタム グラフの作成もサポートしています。
カスタム グラフの作成
開発者は、Aspose.Cells simple API を使用して実行時にカスタム チャートを作成できます。
グラフはデータ系列で構成されています。 Aspose.Cells の各データ系列は、シリーズオブジェクトに対してシリーズコレクションオブジェクトはのコレクションとして機能しますシリーズオブジェクト。カスタム グラフを作成する場合、開発者は、さまざまなデータ シリーズにさまざまな種類のグラフを自由に使用できます (シリーズコレクション物体)。
以下のコード例は、カスタム グラフを作成する方法を示しています。この例では、最初のデータ系列に縦棒グラフを使用し、2 番目の系列に折れ線グラフを使用します。その結果、折れ線グラフと組み合わせた縦棒グラフがワークシートに追加されます。
縦棒グラフと折れ線グラフを組み合わせたカスタム グラフ
プログラミング例
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(HowToCreateCustomChart.class) + "charts/"; | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(); | |
// Obtaining the reference of the first worksheet | |
WorksheetCollection worksheets = workbook.getWorksheets(); | |
Worksheet sheet = worksheets.get(0); | |
// Adding some sample value to cells | |
Cells cells = sheet.getCells(); | |
Cell cell = cells.get("A1"); | |
cell.setValue(50); | |
cell = cells.get("A2"); | |
cell.setValue(100); | |
cell = cells.get("A3"); | |
cell.setValue(150); | |
cell = cells.get("B1"); | |
cell.setValue(4); | |
cell = cells.get("B2"); | |
cell.setValue(20); | |
cell = cells.get("B3"); | |
cell.setValue(180); | |
cell = cells.get("C1"); | |
cell.setValue(320); | |
cell = cells.get("C2"); | |
cell.setValue(110); | |
cell = cells.get("C3"); | |
cell.setValue(180); | |
cell = cells.get("D1"); | |
cell.setValue(40); | |
cell = cells.get("D2"); | |
cell.setValue(120); | |
cell = cells.get("D3"); | |
cell.setValue(250); | |
ChartCollection charts = sheet.getCharts(); | |
// Adding a chart to the worksheet | |
int chartIndex = charts.add(ChartType.COLUMN_3_D, 5, 0, 15, 5); | |
Chart chart = charts.get(chartIndex); | |
// Adding NSeries (chart data source) to the chart ranging from "A1" | |
// cell to "B3" | |
SeriesCollection serieses = chart.getNSeries(); | |
serieses.add("A1:B3", true); | |
// Saving the Excel file | |
workbook.save(dataDir + "HTCCustomChart_out.xls"); | |
// Print message | |
System.out.println("Customized chart is successfully created."); |