Reputation: 1447
I'm trying to plot real-time graph, with time axis, but I have found the LineChart
constructor only has the signature.
LineChart(Axis<X> xAxis, Axis<Y> yAxis)
I think embedding jfree chart in javafx is not a proper solution.
I want a few of the jfree features in a javafx LineChart
, is this possible?
Upvotes: 12
Views: 24178
Reputation: 34528
Download Ensemble sample from http://www.oracle.com/technetwork/java/javafx/samples/index.html
There are several examples in it for dynamic charts, e.g. "Advanced Stock Line Chart". You can take a look at their source code directly in the application.
To show time on axis you can use string and DateFormatter:
BarChart<String, Number> chart = new BarChart<>(new CategoryAxis(), new NumberAxis());
final XYChart.Series<String, Number> series1 = new XYChart.Series<>();
chart.getData().addAll(series1);
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
Date date = new Date();
for (int i = 0; i <= 10; i += 1) {
date.setTime(date.getTime() + i * 11111);
series1.getData().add(new XYChart.Data(dateFormat.format(date), Math.random() * 500));
}
Upvotes: 19
Reputation: 205885
The class org.jfree.chart.demo.TimeSeriesChartDemo1
is included with the distribution. It is pictured in the demo, and its source illustrates the use of the factory method ChartFactory.createTimeSeriesChart()
. There's a related example here.
Upvotes: 0