棒グラフは、同じ幅で異なる長さの水平矩形バーで、データを表したりまとめたりするグラフです。MS Excel では、棒グラフは異なるグループのデータを比較し、ユーザーがデータを迅速に分析して結論を出すのを支援する良いツールです。この記事では、Spire.XLS for Java を使用して Excel で集合横棒グラフまたは積み上げ横棒グラフを作成する方法を紹介します。
Spire.XLS for Java をインストールします
まず、Spire.XLS for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls</artifactId>
<version>12.12.4</version>
</dependency>
</dependencies>
Excel で集合横棒グラフを作成する
集合横棒グラフでは、異なるシリーズのデータ値が個別の矩形に並んで表示されます。この方法は、ユーザーが各カテゴリの複数のデータを直接比較するのに役立ちます。以下に詳細な操作手順を示します。
- Workbook のインスタンスを作成します。
- Workbook.getWorksheets().get() メソッドを使用して、インデックスで指定されたワークシートを取得します。
- 指定したセルにデータを追加し、セルのスタイルを設定します。
- Worksheet.getCharts().add(ExcelChartType.BarClustered) メソッドを使用して、指定したワークシートに 2D の集合横棒グラフを追加します。
- Chart.setDataRange(CellRange dataRange)メソッドを使用して、グラフのデータ範囲を設定します。
- グラフの位置とタイトルを設定します。
- Chart.getPrimaryCategoryAxis() メソッドを使用してグラフの主カテゴリ軸を取得し、ChartCategoryAxis クラスのメソッドを使用してカテゴリ軸の表示テキストとタイトルを設定します。
- Chart.getPrimaryValueAxis() メソッドを使用してグラフの主値軸を取得し、ChartValueAxis クラスのメソッドを使用して値軸のタイトル、最小値、主要グリッド線を設定します。
- グラフのデータ系列をループし、ChartSerie.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue() メソッドの値を true に設定して、各データ系列のデータポイントのデータラベルを表示します。
- Chart.getLegend().setPosition() メソッドを使用してグラフの凡例の位置を設定します。
- Workbook.saveToFile() メソッドを使用して結果ファイルを保存します。
- Java
import com.spire.xls.*;
import com.spire.xls.charts.ChartSerie;
import com.spire.xls.charts.ChartSeries;
import java.awt.*;
public class CreateBarChart {
public static void main(String[] args) {
//Workbookのインスタンスを作成する
Workbook workbook = new Workbook();
//最初のシートを取得する
Worksheet sheet = workbook.getWorksheets().get(0);
//指定されたセルにデータを挿入する
sheet.getCellRange("A1").setValue("国");
sheet.getCellRange("A2").setValue("キューバ");
sheet.getCellRange("A3").setValue("メキシコ");
sheet.getCellRange("A4").setValue("フランス");
sheet.getCellRange("A5").setValue("ドイツ.");
sheet.getCellRange("B1").setValue("7月");
sheet.getCellRange("B2").setNumberValue(6000);
sheet.getCellRange("B3").setNumberValue(8000);
sheet.getCellRange("B4").setNumberValue(9000);
sheet.getCellRange("B5").setNumberValue(8500);
sheet.getCellRange("C1").setValue("8月");
sheet.getCellRange("C2").setNumberValue(3000);
sheet.getCellRange("C3").setNumberValue(2000);
sheet.getCellRange("C4").setNumberValue(6000);
sheet.getCellRange("C5").setNumberValue(3500);
//セルのスタイルを設定する
sheet.getCellRange("A1:C1").setRowHeight(15);
sheet.getCellRange("A1:C1").getCellStyle().setColor(Color.darkGray);
sheet.getCellRange("A1:C1").getCellStyle().getExcelFont().setColor(Color.white);
sheet.getCellRange("A1:C5").getCellStyle().setVerticalAlignment(VerticalAlignType.Center);
sheet.getCellRange("A1:C5").getCellStyle().setHorizontalAlignment(HorizontalAlignType.Center);
//数値フォーマットを設定する
sheet.getCellRange("B2:C5").getCellStyle().setNumberFormat("\"$\"#,##0");
//指定したワークシートに 集合横棒グラフを追加する
Chart chart = sheet.getCharts().add(ExcelChartType.BarClustered);
//グラフのデータ範囲を設定する
chart.setDataRange(sheet.getCellRange("A1:C5"));
chart.setSeriesDataFromRange(false);
//グラフの位置を設定する
chart.setLeftColumn(1);
chart.setTopRow(6);
chart.setRightColumn(11);
chart.setBottomRow(29);
//グラフのタイトルを設定してフォーマットする
chart.setChartTitle("販売成績");
chart.getChartTitleArea().isBold(true);
chart.getChartTitleArea().setSize(12);
//カテゴリ軸のタイトルを設定してフォーマットする
chart.getPrimaryCategoryAxis().setTitle("国");
chart.getPrimaryCategoryAxis().getFont().isBold(true);
chart.getPrimaryCategoryAxis().getTitleArea().isBold(true);
chart.getPrimaryCategoryAxis().getTitleArea().setTextRotationAngle(90);
//値軸のタイトルを設定してフォーマットする
chart.getPrimaryValueAxis().setTitle("売上高");
chart.getPrimaryValueAxis().hasMajorGridLines(false);
chart.getPrimaryValueAxis().setMinValue(1000);
chart.getPrimaryValueAxis().getTitleArea().isBold(true);
//データポイントのデータラベルを表示する
ChartSeries series = chart.getSeries();
for (int i = 0;i < series.size();i++)
{
ChartSerie cs = series.get(i);
cs.getFormat().getOptions().isVaryColor(true);
cs.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);
}
//グラフの凡例の位置を設定する
chart.getLegend().setPosition(LegendPositionType.Top);
//結果ファイルを保存する
workbook.saveToFile("CreateBarChart.xlsx", ExcelVersion.Version2016);
}
}
Excel で積み上げ横棒グラフを作成する
積み上げ横棒グラフでは、異なるシリーズのデータ値が同じ矩形に表示されます。集合横棒グラフよりも、積み上げ横棒グラフの方が、各カテゴリの一部から全体までの違いを明確に反映することができます。以下に詳細な操作手順を示します。
- Workbook のインスタンスを作成します。
- Workbook.getWorksheets().get() メソッドを使用して、インデックスで指定されたワークシートを取得します。
- 指定したセルにデータを追加し、セルのスタイルを設定します。
- Worksheet.getCharts().add(ExcelChartType.BarStacked) メソッドを使用して、指定したワークシートに 2D の積み上げ横棒グラフを追加します。
- Chart.setDataRange(CellRange dataRange) メソッドを使用して、グラフのデータ範囲を設定します。
- グラフの位置、タイトル、カテゴリ軸のタイトル、数値軸のタイトルを設定します。
- グラフのデータ系列をループし、ChartSerie.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue() メソッドの値を true に設定して、各データ系列のデータポイントのデータラベルを表示します。
- Chart.getLegend().setPosition() メソッドを使用してグラフの凡例の位置を設定します。
- Workbook.saveToFile() メソッドを使用して結果ファイルを保存します。
- Java
import com.spire.xls.*;
import com.spire.xls.charts.ChartSerie;
import com.spire.xls.charts.ChartSeries;
import java.awt.*;
public class CreateBarChart {
public static void main(String[] args) {
//Workbookのインスタンスを作成する
Workbook workbook = new Workbook();
//最初のシートを取得する
Worksheet sheet = workbook.getWorksheets().get(0);
//指定されたセルにデータを挿入する
sheet.getCellRange("A1").setValue("国");
sheet.getCellRange("A2").setValue("キューバ");
sheet.getCellRange("A3").setValue("メキシコ");
sheet.getCellRange("A4").setValue("フランス");
sheet.getCellRange("A5").setValue("ドイツ");
sheet.getCellRange("B1").setValue("7月");
sheet.getCellRange("B2").setNumberValue(6000);
sheet.getCellRange("B3").setNumberValue(8000);
sheet.getCellRange("B4").setNumberValue(9000);
sheet.getCellRange("B5").setNumberValue(8500);
sheet.getCellRange("C1").setValue("8月");
sheet.getCellRange("C2").setNumberValue(3000);
sheet.getCellRange("C3").setNumberValue(2000);
sheet.getCellRange("C4").setNumberValue(6000);
sheet.getCellRange("C5").setNumberValue(3500);
//セルのスタイルを設定する
sheet.getCellRange("A1:C1").setRowHeight(15);
sheet.getCellRange("A1:C1").getCellStyle().setColor(Color.darkGray);
sheet.getCellRange("A1:C1").getCellStyle().getExcelFont().setColor(Color.white);
sheet.getCellRange("A1:C5").getCellStyle().setVerticalAlignment(VerticalAlignType.Center);
sheet.getCellRange("A1:C5").getCellStyle().setHorizontalAlignment(HorizontalAlignType.Center);
//数値フォーマットを設定する
sheet.getCellRange("B2:C5").getCellStyle().setNumberFormat("\"$\"#,##0");
//指定したワークシートに積み上げ横棒グラフを追加する
Chart chart = sheet.getCharts().add(ExcelChartType.BarStacked);
//グラフのデータ範囲を設定する
chart.setDataRange(sheet.getCellRange("A1:C5"));
chart.setSeriesDataFromRange(false);
//グラフの位置を設定する
chart.setLeftColumn(1);
chart.setTopRow(6);
chart.setRightColumn(11);
chart.setBottomRow(29);
//グラフのタイトルを設定してフォーマットする
chart.setChartTitle("販売成績");
chart.getChartTitleArea().isBold(true);
chart.getChartTitleArea().setSize(12);
//カテゴリ軸のタイトルを設定してフォーマットする
chart.getPrimaryCategoryAxis().setTitle("国");
chart.getPrimaryCategoryAxis().getFont().isBold(true);
chart.getPrimaryCategoryAxis().getTitleArea().isBold(true);
chart.getPrimaryCategoryAxis().getTitleArea().setTextRotationAngle(90);
//値軸のタイトルを設定してフォーマットする
chart.getPrimaryValueAxis().setTitle("売上高");
chart.getPrimaryValueAxis().hasMajorGridLines(false);
chart.getPrimaryValueAxis().setMinValue(1000);
chart.getPrimaryValueAxis().getTitleArea().isBold(true);
//データポイントのデータラベルを表示する
ChartSeries series = chart.getSeries();
for (int i = 0;i < series.size();i++)
{
ChartSerie cs = series.get(i);
cs.getFormat().getOptions().isVaryColor(true);
cs.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);
}
//グラフの凡例の位置を設定する
chart.getLegend().setPosition(LegendPositionType.Top);
//結果ファイルを保存する
workbook.saveToFile("StackedBarChart.xlsx", ExcelVersion.Version2016);
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。