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 件のコメント:
コメントを投稿