List of usage examples for javafx.scene.chart NumberAxis NumberAxis
public NumberAxis(double lowerBound, double upperBound, double tickUnit)
From source file:Main.java
@Override public void start(final Stage stage) { stage.setWidth(500);//from w w w . jav a2 s . c o m stage.setHeight(500); Scene scene = new Scene(new Group()); VBox root = new VBox(); NumberAxis lineYAxis = new NumberAxis(0, 100, 10); CategoryAxis lineXAxis = new CategoryAxis(); lineYAxis.setLabel("Sales"); lineXAxis.setLabel("Products"); root.getChildren().addAll(lineXAxis); scene.setRoot(root); stage.setScene(scene); stage.show(); }
From source file:Main.java
@Override public void start(Stage primaryStage) { Group root = new Group(); final NumberAxis xAxis = new NumberAxis(1, 12, 1); final NumberAxis yAxis = new NumberAxis(); final StackedAreaChart<Number, Number> stackedAreaChart = new StackedAreaChart<Number, Number>(xAxis, yAxis);//from w w w . j av a 2 s .c o m final XYChart.Series<Number, Number> series1 = new XYChart.Series<Number, Number>(); xAxis.setLabel("Month"); yAxis.setLabel("Value"); stackedAreaChart.setTitle("StackedAreaChart"); series1.setName("XYChart.Series 1"); series1.getData().add(new XYChart.Data(1, 100)); series1.getData().add(new XYChart.Data(2, 200)); series1.getData().add(new XYChart.Data(10, 150)); XYChart.Series<Number, Number> series2 = new XYChart.Series(); series2.setName("XYChart.Series 2"); series2.getData().add(new XYChart.Data(1, 50)); series2.getData().add(new XYChart.Data(2, 200)); series2.getData().add(new XYChart.Data(10, 260)); stackedAreaChart.getData().addAll(series1, series2); root.getChildren().addAll(stackedAreaChart); primaryStage.setScene(new Scene(root, 500, 400)); primaryStage.show(); }
From source file:Main.java
@Override public void start(final Stage stage) { stage.setTitle(""); stage.setWidth(500);//from www .ja v a 2 s.com stage.setHeight(500); Scene scene = new Scene(new Group()); VBox root = new VBox(); NumberAxis yAxis = new NumberAxis(0.0, 5.0, 1.0); NumberAxis xAxis = new NumberAxis(0.0, 5.0, 1.0); ScatterChart scatterChart = new ScatterChart(xAxis, yAxis); root.getChildren().addAll(scatterChart); scene.setRoot(root); stage.setScene(scene); stage.show(); }
From source file:Main.java
@Override public void start(final Stage stage) { stage.setTitle(""); stage.setWidth(500);/*from ww w. java 2 s .c o m*/ stage.setHeight(500); Scene scene = new Scene(new Group()); VBox root = new VBox(); NumberAxis lineYAxis = new NumberAxis(0, 100, 10); CategoryAxis lineXAxis = new CategoryAxis(); lineYAxis.setLabel("Sales"); lineXAxis.setLabel("Products"); root.getChildren().addAll(lineXAxis); scene.setRoot(root); stage.setScene(scene); stage.show(); }
From source file:Main.java
@Override public void start(final Stage stage) { stage.setTitle(""); stage.setWidth(500);// w w w. j ava 2 s. co m stage.setHeight(500); Scene scene = new Scene(new Group()); VBox root = new VBox(); NumberAxis lineYAxis = new NumberAxis(0, 100, 10); CategoryAxis lineXAxis = new CategoryAxis(); BarChart barChart = new BarChart(lineXAxis, lineYAxis); lineYAxis.setLabel("Sales"); lineXAxis.setLabel("Products"); root.getChildren().addAll(barChart); scene.setRoot(root); stage.setScene(scene); stage.show(); }
From source file:Main.java
@Override public void start(Stage stage) { stage.setTitle("Area Chart Sample"); final NumberAxis xAxis = new NumberAxis(1, 30, 1); final NumberAxis yAxis = new NumberAxis(-5, 27, 5); final AreaChart<Number, Number> ac = new AreaChart<Number, Number>(xAxis, yAxis); xAxis.setForceZeroInRange(true);//ww w . j av a2s . com ac.setTitle("Temperature Monitoring (in Degrees C)"); XYChart.Series series1 = new XYChart.Series(); series1.setName("March"); series1.getData().add(new XYChart.Data(0, -2)); series1.getData().add(new XYChart.Data(3, -4)); series1.getData().add(new XYChart.Data(6, 0)); series1.getData().add(new XYChart.Data(9, 5)); XYChart.Series series2 = new XYChart.Series(); series2.setName("April"); series2.getData().add(new XYChart.Data(0, 4)); series2.getData().add(new XYChart.Data(3, 10)); series2.getData().add(new XYChart.Data(6, 15)); series2.getData().add(new XYChart.Data(9, 8)); XYChart.Series series3 = new XYChart.Series(); series3.setName("May"); series3.getData().add(new XYChart.Data(0, 20)); series3.getData().add(new XYChart.Data(3, 15)); series3.getData().add(new XYChart.Data(6, 13)); series3.getData().add(new XYChart.Data(9, 12)); Scene scene = new Scene(ac, 800, 600); //scene.getStylesheets().add("areachartsample/Chart.css"); ac.setHorizontalZeroLineVisible(true); ac.getData().addAll(series1, series2, series3); stage.setScene(scene); stage.show(); }
From source file:Main.java
@Override public void start(Stage stage) { stage.setTitle("Area Chart Sample"); final NumberAxis xAxis = new NumberAxis(1, 30, 1); final NumberAxis yAxis = new NumberAxis(-5, 27, 5); final AreaChart<Number, Number> ac = new AreaChart<Number, Number>(xAxis, yAxis); xAxis.setForceZeroInRange(true);/*from w ww . ja v a2 s. c om*/ ac.setTitle("Temperature Monitoring (in Degrees C)"); XYChart.Series series1 = new XYChart.Series(); series1.setName("March"); series1.getData().add(new XYChart.Data(0, -2)); series1.getData().add(new XYChart.Data(3, -4)); series1.getData().add(new XYChart.Data(6, 0)); series1.getData().add(new XYChart.Data(9, 5)); series1.getData().add(new XYChart.Data(12, -4)); series1.getData().add(new XYChart.Data(15, 6)); series1.getData().add(new XYChart.Data(18, 8)); series1.getData().add(new XYChart.Data(21, 14)); series1.getData().add(new XYChart.Data(24, 4)); series1.getData().add(new XYChart.Data(27, 6)); series1.getData().add(new XYChart.Data(30, 6)); XYChart.Series series2 = new XYChart.Series(); series2.setName("April"); series2.getData().add(new XYChart.Data(0, 4)); series2.getData().add(new XYChart.Data(3, 10)); series2.getData().add(new XYChart.Data(6, 15)); series2.getData().add(new XYChart.Data(9, 8)); series2.getData().add(new XYChart.Data(12, 5)); series2.getData().add(new XYChart.Data(15, 18)); series2.getData().add(new XYChart.Data(18, 15)); series2.getData().add(new XYChart.Data(21, 13)); series2.getData().add(new XYChart.Data(24, 19)); series2.getData().add(new XYChart.Data(27, 21)); series2.getData().add(new XYChart.Data(30, 21)); XYChart.Series series3 = new XYChart.Series(); series3.setName("May"); series3.getData().add(new XYChart.Data(0, 20)); series3.getData().add(new XYChart.Data(3, 15)); series3.getData().add(new XYChart.Data(6, 13)); series3.getData().add(new XYChart.Data(9, 12)); series3.getData().add(new XYChart.Data(12, 14)); series3.getData().add(new XYChart.Data(15, 18)); series3.getData().add(new XYChart.Data(18, 25)); series3.getData().add(new XYChart.Data(21, 25)); series3.getData().add(new XYChart.Data(24, 23)); series3.getData().add(new XYChart.Data(27, 26)); series3.getData().add(new XYChart.Data(30, 26)); Scene scene = new Scene(ac, 800, 600); //scene.getStylesheets().add("areachartsample/Chart.css"); ac.setHorizontalZeroLineVisible(true); ac.getData().addAll(series1, series2, series3); stage.setScene(scene); stage.show(); }
From source file:Main.java
@Override public void start(Stage stage) { stage.setTitle("Bubble Chart Sample"); final NumberAxis xAxis = new NumberAxis(1, 53, 4); final NumberAxis yAxis = new NumberAxis(0, 80, 10); final BubbleChart<Number, Number> blc = new BubbleChart<Number, Number>(xAxis, yAxis); xAxis.setLabel("Week"); xAxis.setTickLabelFill(Color.CHOCOLATE); xAxis.setMinorTickCount(4);/* www . j a v a 2 s.c om*/ yAxis.setLabel("Product Budget"); yAxis.setTickLabelFill(Color.CHOCOLATE); yAxis.setTickLabelGap(10); yAxis.setTickLabelFormatter(new NumberAxis.DefaultFormatter(yAxis, "$ ", null)); blc.setTitle("Budget Monitoring"); XYChart.Series series1 = new XYChart.Series(); series1.setName("Product 1"); series1.getData().add(new XYChart.Data(3, 35, 2)); series1.getData().add(new XYChart.Data(12, 60, 1.8)); series1.getData().add(new XYChart.Data(15, 15, 7)); series1.getData().add(new XYChart.Data(22, 30, 2.5)); series1.getData().add(new XYChart.Data(28, 20, 1)); series1.getData().add(new XYChart.Data(35, 41, 5.5)); series1.getData().add(new XYChart.Data(42, 17, 9)); series1.getData().add(new XYChart.Data(49, 30, 1.8)); XYChart.Series series2 = new XYChart.Series(); series2.setName("Product 2"); series2.getData().add(new XYChart.Data(8, 15, 2)); series2.getData().add(new XYChart.Data(13, 23, 1)); series2.getData().add(new XYChart.Data(15, 45, 3)); series2.getData().add(new XYChart.Data(24, 30, 4.5)); series2.getData().add(new XYChart.Data(38, 78, 1)); series2.getData().add(new XYChart.Data(40, 41, 7.5)); series2.getData().add(new XYChart.Data(45, 57, 2)); series2.getData().add(new XYChart.Data(47, 23, 3.8)); Scene scene = new Scene(blc); blc.getData().addAll(series1, series2); //scene.getStylesheets().add("bubblechartsample/Chart.css"); stage.setScene(scene); stage.show(); }
From source file:nl.rivm.cib.episim.model.disease.infection.MSEIRSPlot.java
@Override public void start(final Stage stage) { final SIRConfig conf = ConfigFactory.create(SIRConfig.class); final double[] t = conf.t(); final long[] pop = conf.population(); final double n0 = Arrays.stream(pop).sum(); final String[] colors = conf.colors(), colors2 = conf.colors2(); final Pane plot = new Pane(); plot.setPrefSize(400, 300);// ww w. j av a 2s .c om plot.setMinSize(50, 50); final NumberAxis xAxis = new NumberAxis(t[0], t[1], (t[1] - t[0]) / 10); final NumberAxis yAxis = new NumberAxis(0, n0, n0 / 10); final Pane axes = new Pane(); axes.prefHeightProperty().bind(plot.heightProperty()); axes.prefWidthProperty().bind(plot.widthProperty()); xAxis.setSide(Side.BOTTOM); xAxis.setMinorTickVisible(false); xAxis.setPrefWidth(axes.getPrefWidth()); xAxis.prefWidthProperty().bind(axes.widthProperty()); xAxis.layoutYProperty().bind(axes.heightProperty()); yAxis.setSide(Side.LEFT); yAxis.setMinorTickVisible(false); yAxis.setPrefHeight(axes.getPrefHeight()); yAxis.prefHeightProperty().bind(axes.heightProperty()); yAxis.layoutXProperty().bind(Bindings.subtract(1, yAxis.widthProperty())); axes.getChildren().setAll(xAxis, yAxis); final Label lbl = new Label(String.format("R0=%.1f, recovery=%.1ft\nSIR(0)=%s", conf.reproduction(), conf.recovery(), Arrays.toString(pop))); lbl.setTextAlignment(TextAlignment.CENTER); lbl.setTextFill(Color.WHITE); final Path[] deterministic = { new Path(), new Path(), new Path() }; IntStream.range(0, pop.length).forEach(i -> { final Color color = Color.valueOf(colors[i]); final Path path = deterministic[i]; path.setStroke(color.deriveColor(0, 1, 1, 0.6)); path.setStrokeWidth(2); path.setClip(new Rectangle(0, 0, plot.getPrefWidth(), plot.getPrefHeight())); }); plot.getChildren().setAll(axes); // fill paths with integration estimates final double xl = xAxis.getLowerBound(), sx = plot.getPrefWidth() / (xAxis.getUpperBound() - xl), yh = plot.getPrefHeight(), sy = yh / (yAxis.getUpperBound() - yAxis.getLowerBound()); final TreeMap<Double, Integer> iDeterministic = new TreeMap<>(); MSEIRSTest.deterministic(conf, () -> new DormandPrince853Integrator(1.0E-8, 10, 1.0E-20, 1.0E-20)) .subscribe(yt -> { iDeterministic.put(yt.getKey(), deterministic[0].getElements().size()); final double[] y = yt.getValue(); final double x = (yt.getKey() - xl) * sx; for (int i = 0; i < y.length; i++) { final double yi = yh - y[i] * sy; final PathElement di = deterministic[i].getElements().isEmpty() ? new MoveTo(x, yi) : new LineTo(x, yi); deterministic[i].getElements().add(di); } }, e -> LOG.error("Problem", e), () -> plot.getChildren().addAll(deterministic)); final Path[] stochasticTau = { new Path(), new Path(), new Path() }; IntStream.range(0, pop.length).forEach(i -> { final Color color = Color.valueOf(colors[i]); final Path path = stochasticTau[i]; path.setStroke(color); path.setStrokeWidth(1); path.setClip(new Rectangle(0, 0, plot.getPrefWidth(), plot.getPrefHeight())); }); final TreeMap<Double, Integer> iStochasticTau = new TreeMap<>(); MSEIRSTest.stochasticGillespie(conf).subscribe(yt -> { final double x = (yt.getKey() - xl) * sx; iStochasticTau.put(yt.getKey(), stochasticTau[0].getElements().size()); final long[] y = yt.getValue(); for (int i = 0; i < y.length; i++) { final double yi = yh - y[i] * sy; final ObservableList<PathElement> path = stochasticTau[i].getElements(); if (path.isEmpty()) { path.add(new MoveTo(x, yi)); // first } else { final PathElement last = path.get(path.size() - 1); final double y_prev = last instanceof MoveTo ? ((MoveTo) last).getY() : ((LineTo) last).getY(); path.add(new LineTo(x, y_prev)); path.add(new LineTo(x, yi)); } } }, e -> LOG.error("Problem", e), () -> plot.getChildren().addAll(stochasticTau)); final Path[] stochasticRes = { new Path(), new Path(), new Path() }; IntStream.range(0, pop.length).forEach(i -> { final Color color = Color.valueOf(colors2[i]); final Path path = stochasticRes[i]; path.setStroke(color); path.setStrokeWidth(1); path.setClip(new Rectangle(0, 0, plot.getPrefWidth(), plot.getPrefHeight())); }); final TreeMap<Double, Integer> iStochasticRes = new TreeMap<>(); MSEIRSTest.stochasticSellke(conf).subscribe(yt -> { final double x = (yt.getKey() - xl) * sx; iStochasticRes.put(yt.getKey(), stochasticRes[0].getElements().size()); final long[] y = yt.getValue(); for (int i = 0; i < y.length; i++) { final double yi = yh - y[i] * sy; final ObservableList<PathElement> path = stochasticRes[i].getElements(); if (path.isEmpty()) { path.add(new MoveTo(x, yi)); // first } else { final PathElement last = path.get(path.size() - 1); final double y_prev = last instanceof MoveTo ? ((MoveTo) last).getY() : ((LineTo) last).getY(); path.add(new LineTo(x, y_prev)); path.add(new LineTo(x, yi)); } } }, e -> LOG.error("Problem", e), () -> plot.getChildren().addAll(stochasticRes)); // auto-scale on stage/plot resize // FIXME scaling around wrong origin, use ScatterChart? // xAxis.widthProperty() // .addListener( (ChangeListener<Number>) ( observable, // oldValue, newValue ) -> // { // final double scale = ((Double) newValue) // / plot.getPrefWidth(); // plot.getChildren().filtered( n -> n instanceof Path ) // .forEach( n -> // { // final Path path = (Path) n; // path.setScaleX( scale ); // path.setTranslateX( (path // .getBoundsInParent().getWidth() // - path.getLayoutBounds().getWidth()) // / 2 ); // } ); // } ); // plot.heightProperty() // .addListener( (ChangeListener<Number>) ( observable, // oldValue, newValue ) -> // { // final double scale = ((Double) newValue) // / plot.getPrefHeight(); // plot.getChildren().filtered( n -> n instanceof Path ) // .forEach( n -> // { // final Path path = (Path) n; // path.setScaleY( scale ); // path.setTranslateY( // (path.getBoundsInParent() // .getHeight() * (scale - 1)) // / 2 ); // } ); // } ); final StackPane layout = new StackPane(lbl, plot); layout.setAlignment(Pos.TOP_CENTER); layout.setPadding(new Insets(50)); layout.setStyle("-fx-background-color: rgb(35, 39, 50);"); final Line vertiCross = new Line(); vertiCross.setStroke(Color.SILVER); vertiCross.setStrokeWidth(1); vertiCross.setVisible(false); axes.getChildren().add(vertiCross); final Tooltip tip = new Tooltip(""); tip.setAutoHide(false); tip.hide(); axes.setOnMouseExited(ev -> tip.hide()); axes.setOnMouseMoved(ev -> { final Double x = (Double) xAxis.getValueForDisplay(ev.getX()); if (x > xAxis.getUpperBound() || x < xAxis.getLowerBound()) { tip.hide(); vertiCross.setVisible(false); return; } final Double y = (Double) yAxis.getValueForDisplay(ev.getY()); if (y > yAxis.getUpperBound() || y < yAxis.getLowerBound()) { tip.hide(); vertiCross.setVisible(false); return; } final double xs = xAxis.getDisplayPosition(x); vertiCross.setStartX(xs); vertiCross.setStartY(yAxis.getDisplayPosition(0)); vertiCross.setEndX(xs); vertiCross.setEndY(yAxis.getDisplayPosition(yAxis.getUpperBound())); vertiCross.setVisible(true); final int i = (iDeterministic.firstKey() > x ? iDeterministic.firstEntry() : iDeterministic.floorEntry(x)).getValue(); final Object[] yi = Arrays.stream(deterministic).mapToDouble(p -> getY(p, i)) .mapToObj(yAxis::getValueForDisplay).map(n -> DecimalUtil.toScale(n, 1)).toArray(); final int j = (iStochasticTau.firstKey() > x ? iStochasticTau.firstEntry() : iStochasticTau.floorEntry(x)).getValue(); final Object[] yj = Arrays.stream(stochasticTau).mapToDouble(p -> getY(p, j)) .mapToObj(yAxis::getValueForDisplay).map(n -> DecimalUtil.toScale(n, 0)).toArray(); final int k = (iStochasticRes.firstKey() > x ? iStochasticRes.firstEntry() : iStochasticRes.floorEntry(x)).getValue(); final Object[] yk = Arrays.stream(stochasticRes).mapToDouble(p -> getY(p, k)) .mapToObj(yAxis::getValueForDisplay).map(n -> DecimalUtil.toScale(n, 0)).toArray(); final String txt = String.format("SIR(t=%.1f)\n" + "~det%s\n" + "~tau%s\n" + "~res%s", x, Arrays.toString(yi), Arrays.toString(yj), Arrays.toString(yk)); tip.setText(txt); tip.show(axes, ev.getScreenX() - ev.getSceneX() + xs, ev.getScreenY() + 15); }); try { stage.getIcons().add(new Image(FileUtil.toInputStream("icon.jpg"))); } catch (final IOException e) { LOG.error("Problem", e); } stage.setTitle("Deterministic vs. Stochastic"); stage.setScene(new Scene(layout, Color.rgb(35, 39, 50))); // stage.setOnHidden( ev -> tip.hide() ); stage.show(); }
From source file:tw.edu.sju.ee.eea.module.iepe.project.window.IepeRealtimeSpectrumElement.java
private Scene createScene() { xAxis = new NumberAxis(0, MAX_DATA_POINTS, MAX_DATA_POINTS / 10); xAxis.setForceZeroInRange(false);/* w ww. j a v a 2s. c o m*/ xAxis.setAutoRanging(false); NumberAxis yAxis = new NumberAxis(); yAxis.setAutoRanging(true); //-- Chart final LineChart<Number, Number> sc = new LineChart<Number, Number>(xAxis, yAxis) { // Override to remove symbols on each data point @Override protected void dataItemAdded(XYChart.Series<Number, Number> series, int itemIndex, XYChart.Data<Number, Number> item) { } }; sc.setAnimated(false); sc.setId("liveAreaChart"); sc.setTitle("Animated Area Chart"); //-- Chart Series series = new LineChart.Series<Number, Number>(); series.setName("Area Chart Series"); sc.getData().add(series); return new Scene(sc); }