JavaFX - 气泡图

  • 简述

    使用气泡图种植三维数据;第三个维度将由气泡的大小(半径)表示。
    以下是描述已完成工作的气泡图。
    气泡图
    在 JavaFX 中,气泡图由名为的类表示 BubbleChart. 这个类属于包javafx.scene.chart. 通过实例化此类,您可以在 JavaFX 中创建一个 BubbleChart 节点。
  • 生成气泡图的步骤

    要在 JavaFX 中生成气泡图,请按照以下步骤操作。

    第 1 步:创建一个类

    创建一个Java类并继承 Application 包的类别 javafx.application. 您可以实施start() 这个类的方法如下。
    
    public class ClassName extends Application {  
       @Override     
       public void start(Stage primaryStage) throws Exception {     
       }    
     }
    

    步骤 2:定义轴

    定义气泡图的 X 轴和 Y 轴并为其设置标签。在我们的例子中,X 轴代表年龄,Y 轴代表体重。而气泡的半径代表完成的工作。
    
    //Defining the X axis               
    NumberAxis xAxis = new NumberAxis(0, 100, 10);        
    xAxis.setLabel("Age");  
    //Defining Y axis        
    NumberAxis yAxis = new NumberAxis(20, 100, 10); 
    yAxis.setLabel("Weight");
    

    第 3 步:创建气泡图

    通过实例化名为的类来创建折线图 BubbleChart 包裹的 javafx.scene.chart. 向该类的构造函数传递上一步创建的表示 X 轴和 Y 轴的对象。
    
    //Creating the Bubble chart 
    BubbleChart bubbleChart = new BubbleChart(xAxis, yAxis);
    

    第 4 步:准备数据

    实例化 XYChart.Series 类并将数据(一系列 x 和 y 坐标)添加到此类的 Observable 列表中,如下所示 -
    
    //Prepare XYChart.Series objects by setting data        
    XYChart.Series series = new XYChart.Series();  
    series.setName("work");  
    series.getData().add(new XYChart.Data(10,30,4));  
    series.getData().add(new XYChart.Data(25,40,5)); 
    series.getData().add(new XYChart.Data(40,50,9)); 
    series.getData().add(new XYChart.Data(55,60,7));    
    series.getData().add(new XYChart.Data(70,70,9));        
    series.getData().add(new XYChart.Data(85,80,6)); 
    

    步骤 5:将数据添加到气泡图

    将上一步中准备的数据系列添加到面积图中,如下所示 -
    
    //Setting the data to bar chart        
    bubbleChart.getData().add(series); 
    

    步骤 6:创建组对象

    在里面 start()方法,通过实例化名为 Group 的类来创建一个组对象。这个属于包javafx.scene.
    将在上一步中创建的 BubbleChart(节点)对象作为参数传递给 Group 类的构造函数。这样做是为了将其添加到组中,如下所示 -
    
    Group root = new Group(bubbleChart);
    

    步骤 7:创建场景对象

    通过实例化名为的类来创建场景 Scene,属于包 javafx.scene. 向这个类传递 Group 对象 (root),在上一步中创建。
    除了根对象,你还可以传递两个表示屏幕高度和宽度的双参数,以及 Group 类的对象,如下所示。
    
    Scene scene = new Scene(group ,600, 300);
    

    第八步:设置舞台标题

    您可以使用 setTitle() 的方法 Stage班级。这primaryStage 是一个Stage对象,作为参数传递给场景类的start方法。
    使用 primaryStage 对象,将场景的标题设置为 Sample Application 如下。
    
    primaryStage.setTitle("Sample Application");
    

    第 9 步:将场景添加到舞台

    您可以使用方法将 Scene 对象添加到舞台 setScene() 类名为 Stage. 使用以下方法添加在前面步骤中准备的 Scene 对象。
    
    primaryStage.setScene(scene);
    

    第 10 步:显示舞台内容

    使用名为的方法显示场景的内容 show()Stage 类如下。
    
    primaryStage.show();
    

    第 11 步:启动应用程序

    通过调用静态方法启动 JavaFX 应用程序 launch()Application 类从主要方法如下。
    
    public static void main(String args[]){   
       launch(args);      
    }
    

    例子

    让我们考虑不同的人以及他们的年龄、体重和工作能力。可以将工作能力视为图表中以气泡形式绘制的小时数。
    重量
    年龄
    30 40 50 60 70 80
    10 4 工作
    25 5
    40 6
    55 8
    70 9
    85 15
    以下是生成气泡图的 Java 程序,使用 JavaFX 描述上述数据。
    将此代码保存在名称为的文件中 BubbleChartExample.java.
    
    import javafx.application.Application; 
    import javafx.scene.Group; 
    import javafx.scene.Scene; 
    import javafx.scene.chart.BubbleChart; 
    import javafx.stage.Stage;  
    import javafx.scene.chart.NumberAxis; 
    import javafx.scene.chart.XYChart; 
             
    public class BubbleChartExample extends Application { 
       @Override 
       public void start(Stage stage) {     
          //Defining the axes               
          NumberAxis xAxis = new NumberAxis(0, 100, 10);        
          xAxis.setLabel("Age"); 
            
          NumberAxis yAxis = new NumberAxis(20, 100, 10); 
          yAxis.setLabel("Weight"); 
          
          //Creating the Bubble chart 
          BubbleChart bubbleChart = new BubbleChart(xAxis, yAxis);    
             
          //Prepare XYChart.Series objects by setting data        
          XYChart.Series series = new XYChart.Series();  
          series.setName("work"); 
             
          series.getData().add(new XYChart.Data(10,30,4));  
          series.getData().add(new XYChart.Data(25,40,5)); 
          series.getData().add(new XYChart.Data(40,50,9)); 
          series.getData().add(new XYChart.Data(55,60,7));    
          series.getData().add(new XYChart.Data(70,70,9));        
          series.getData().add(new XYChart.Data(85,80,6));
          
          //Setting the data to bar chart         
          bubbleChart.getData().add(series); 
             
          //Creating a Group object  
          Group root = new Group(bubbleChart); 
             
          //Creating a scene object 
          Scene scene = new Scene(root, 600, 400);  
          
          //Setting title to the Stage 
          stage.setTitle("Bubble Chart"); 
             
          //Adding scene to the stage 
          stage.setScene(scene); 
             
          //Displaying the contents of the stage 
          stage.show();         
       }  
       public static void main(String args[]){ 
          launch(args); 
       } 
    }
    
    使用以下命令从命令提示符编译并执行保存的 java 文件。
    
    javac BubbleChartExample.java 
    java BubbleChartExample
    
    执行时,上述程序会生成一个 JavaFX 窗口,显示气泡图,如下所示。
    气泡图示例