JavaFX ではさまざまなチャートを利用できますが、私は思い存分に、というレベルまで細かい所を使いこなせていません。そこで簡単ないくつかのサンプルをベースにして少しずつ加工してみようと思います。まずは LineChart のベースサンプルを紹介します。参考サイト[1] を参考にしました。
動作環境は次の通りです。
- OS: Fedora 22 x86_64
- jdk1.8.0_45-1.8.0_45-fcs.x86_64 (Oracle)
- IDE: NetBeans IDE 8.0.2
リスト:LineChartSample.java
package linechartsample; import javafx.application.Application; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.scene.Scene; import javafx.scene.chart.CategoryAxis; import javafx.scene.chart.LineChart; import javafx.scene.chart.NumberAxis; import javafx.scene.chart.XYChart; import javafx.scene.chart.XYChart.Series; import javafx.stage.Stage; public class LineChartSample extends Application { @Override public void start(Stage stage) { stage.setTitle("Line Chart Sample"); //defining the axes final CategoryAxis xAxis = new CategoryAxis(); final NumberAxis yAxis = new NumberAxis(); //creating the chart final LineChart lineChart = new LineChart(xAxis, yAxis); lineChart.setData(getChartData()); lineChart.setTitle("折れ線グラフのサンプル"); Scene scene = new Scene(lineChart, 600, 400); stage.setScene(scene); stage.show(); } /** * * @return ObservableList<XYChart.Series<String, Double>> */ private ObservableList<XYChart.Series<String, Double>> getChartData() { double y1 = 0.1; double y2 = -0.1; Series<String, Double> series1 = new Series<>(); Series<String, Double> series2 = new Series<>(); series1.setName("系列1"); series2.setName("系列2"); for (int i = 2011; i < 2021; i++) { series1.getData().add(new XYChart.Data(Integer.toString(i), y1)); y1 = y1 + Math.random() - .5; series2.getData().add(new XYChart.Data(Integer.toString(i), y2)); y2 = y2 + Math.random() - .5; } ObservableList<XYChart.Series<String, Double>> seriesList = FXCollections.observableArrayList(); seriesList.addAll(series1, series2); return seriesList; } public static void main(String[] args) { launch(args); } }
実行例を以下に示します。
このチャートのままでは、プレゼン資料や論文に使えません。次回は、このサンプルをベースにして好きなように修飾してみようと思います。
0 件のコメント:
コメントを投稿