この記事では、Javaでグラフやチャートを描画し、データを可視化する方法について解説します。ここでは、Javaで有名なグラフライブラリ JFreeChart
を使用します。
目次
JFreeChartの導入
JFreeChart
ライブラリを使用するには、まずライブラリをプロジェクトに追加する必要があります。MavenやGradleを使っている場合は、依存関係を追加することができます。
Maven
<dependency> <groupId>org.jfree</groupId> <artifactId>jfreechart</artifactId> <version>1.5.3</version> </dependency>
Gradle
implementation 'org.jfree:jfreechart:1.5.3'
折れ線グラフの作成
import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; public class LineChartExample extends ApplicationFrame { public LineChartExample(String applicationTitle) { super(applicationTitle); JFreeChart lineChart = ChartFactory.createLineChart( "Monthly Sales Data", "Month", "Sales", createDataset(), PlotOrientation.VERTICAL, true, true, false ); ChartPanel chartPanel = new ChartPanel(lineChart); chartPanel.setPreferredSize(new java.awt.Dimension(560, 367)); setContentPane(chartPanel); } private CategoryDataset createDataset() { final String productA = "Product A"; final String productB = "Product B"; final String january = "January"; final String february = "February"; final String march = "March"; final DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(100, productA, january); dataset.addValue(150, productA, february); dataset.addValue(200, productA, march); dataset.addValue(50, productB, january); dataset.addValue(80, productB, february); dataset.addValue(150, productB, march); return dataset; } public static void main(String[] args) { LineChartExample chart = new LineChartExample("Monthly Sales Data"); chart.pack(); RefineryUtilities.centerFrameOnScreen(chart); chart.setVisible(true); } }
円グラフの作成
import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.data.general.DefaultPieDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; public class PieChartExample extends ApplicationFrame { public PieChartExample(String title) { super(title); DefaultPieDataset dataset = createDataset(); JFreeChart chart = ChartFactory.createPieChart( "Market Share", dataset, true, true, false ); ChartPanel chartPanel = new ChartPanel(chart); setContentPane(chartPanel); } private DefaultPieDataset createDataset() { DefaultPieDataset dataset = new DefaultPieDataset(); dataset.setValue("Product A", 30); dataset.setValue("Product B", 20); dataset.setValue("Product C", 50); return dataset; } public static void main(String[] args) { PieChartExample chart = new PieChartExample("Market Share"); chart.pack(); RefineryUtilities.centerFrameOnScreen(chart); chart.setVisible(true); } }
棒グラフの作成
import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; public class BarChartExample extends ApplicationFrame { public BarChartExample(String title) { super(title); JFreeChart barChart = ChartFactory.createBarChart( "Yearly Sales", "Year", "Sales", createDataset(), PlotOrientation.VERTICAL, true, true, false ); ChartPanel chartPanel = new ChartPanel(barChart); chartPanel.setPreferredSize(new java.awt.Dimension(560, 367)); setContentPane(chartPanel); } private CategoryDataset createDataset() { final String productA = "Product A"; final String productB = "Product B"; final String year2015 = "2015"; final String year2016 = "2016"; final String year2017 = "2017"; final DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(100, productA, year2015); dataset.addValue(150, productA, year2016); dataset.addValue(200, productA, year2017); dataset.addValue(50, productB, year2015); dataset.addValue(80, productB, year2016); dataset.addValue(150, productB, year2017); return dataset; } public static void main(String[] args) { BarChartExample chart = new BarChartExample("Yearly Sales"); chart.pack(); RefineryUtilities.centerFrameOnScreen(chart); chart.setVisible(true); } }
この記事を参考にして、Javaでグラフやチャートを描画してデータを可視化してみましょう。それでは、Happy coding!