Figure 6-2 Scatter Chart with Two Series to Display Investment Overview — КиберПедия 

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Figure 6-2 Scatter Chart with Two Series to Display Investment Overview

2022-10-10 39
Figure 6-2 Scatter Chart with Two Series to Display Investment Overview 0.00 из 5.00 0 оценок
Заказать работу

Description of "Figure 6-2 Scatter Chart with Two Series to Display Investment Overview"

Managing Chart Data

Example 6-1 creates a scatter chart whose data is coded into the application and cannot be changed from its user interface. Use UI controls in your application to manage the set of data presented by the chart, for example, adding and removing a series of data.

Examine the code shown in Example 6-2. It creates two buttons, Add Series and Remove Series, to alter the set of data.

Example 6-2 Using Buttons to Manager Chart Data import javafx.application.Application; import javafx.geometry.Insets; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.chart.NumberAxis; import javafx.scene.chart.ScatterChart; import javafx.scene.chart.XYChart; import javafx.scene.control.Button; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.stage.Stage;     public class ScatterChartSample extends Application {   @Override public void start(Stage stage) {    stage.setTitle("Scatter Chart Sample");    final NumberAxis xAxis = new NumberAxis(0, 10, 1);    final NumberAxis yAxis = new NumberAxis(-100, 500, 100);           final ScatterChart<Number,Number> sc =        new ScatterChart<Number,Number>(xAxis,yAxis);    xAxis.setLabel("Age (years)");                   yAxis.setLabel("Returns to date");    sc.setTitle("Investment Overview");      XYChart.Series series1 = new XYChart.Series();      series1.setName("Option 1");    series1.getData().add(new XYChart.Data(4.2, 193.2));    series1.getData().add(new XYChart.Data(2.8, 33.6));    series1.getData().add(new XYChart.Data(6.2, 24.8));    series1.getData().add(new XYChart.Data(1, 14));    series1.getData().add(new XYChart.Data(1.2, 26.4));    series1.getData().add(new XYChart.Data(4.4, 114.4));    series1.getData().add(new XYChart.Data(8.5, 323));    series1.getData().add(new XYChart.Data(6.9, 289.8));    series1.getData().add(new XYChart.Data(9.9, 287.1));    series1.getData().add(new XYChart.Data(0.9, -9));    series1.getData().add(new XYChart.Data(3.2, 150.8));    series1.getData().add(new XYChart.Data(4.8, 20.8));    series1.getData().add(new XYChart.Data(7.3, -42.3));    series1.getData().add(new XYChart.Data(1.8, 81.4));    series1.getData().add(new XYChart.Data(7.3, 110.3));    series1.getData().add(new XYChart.Data(2.7, 41.2));      sc.setPrefSize(500, 400);    sc.getData().addAll(series1);    Scene scene = new Scene(new Group()); final VBox vbox = new VBox(); final HBox hbox = new HBox();   final Button add = new Button("Add Series");               final Button remove = new Button("Remove Series");   hbox.setSpacing(10); hbox.getChildren().addAll(add, remove);   vbox.getChildren().addAll(sc, hbox); hbox.setPadding(new Insets(10, 10, 10, 50));      ((Group)scene.getRoot()).getChildren().add(vbox);    stage.setScene(scene);    stage.show(); }   public static void main(String[] args) { launch(args); }  

Whereas Example 6-1 adds the scatter chart directly to the scene, Example 6-2 uses VBox and HBox layout containers to arrange components in the application scene.

Define the setOnAction methods for the Add Series button as shown in Example 6-3. It creates a new series of data by populating the XYChart.Series objects with randomly calculated values. Each new series is assigned to the chart by using the add(series) method.

Example 6-3 Adding Series of Data add.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent e) {    if (sc.getData() == null)        sc.setData(            FXCollections.<XYChart.Series<Number,                Number>>observableArrayList());    ScatterChart.Series<Number, Number> series =        new ScatterChart.Series<Number, Number>();    series.setName("Option "+(sc.getData().size()+1));    for (int i=0; i<100; i++) series.getData().add(        new ScatterChart.Data<Number,            Number>(Math.random()*100, Math.random()*500)); sc.getData().add(series); } });  

To remove a data series from the chart, define the setOnAction method for the Remove Series button as shown in Example 6-4. The remove(int) method called on the scatter chart removes a series of data by using a randomly generated index.

Example 6-4 Removing Series of Data remove.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent e) {    if (!sc.getData().isEmpty())        sc.getData().remove((int)(Math.random()*(sc.getData().size()-1))); } });  

When you add Example 6-3 and Example 6-4 into the application in Example 6-2, the output shown in Figure 6-3 appears. It captures the moment when five series are added to the Option 1 series.


Поделиться с друзьями:

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.