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

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

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

2022-10-10 40
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.


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

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...



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

0.007 с.