javafx面积图AreaChart

本文详细介绍使用JavaFX绘制面积图的方法,通过实例代码展示如何设置图表轴、添加数据系列及自定义图表样式,适用于需要展示随时间变化趋势的数据可视化场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面积图主要强调数量随时间而变化的程度,引起人们对变化趋势的注意

在这里插入图片描述
javafx的chart的基本设置大体相通,可参考ScatterChart进行设置。

代码

package utility;

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.chart.AreaChart;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart.Data;
import javafx.scene.chart.XYChart.Series;
import javafx.stage.Stage;

public class AreaChartUtility extends Application {

    private AreaChart chart;
    private NumberAxis xAxis;
    private NumberAxis yAxis;

    
    public static double normalDistribution(double x, double u,double seta) {
        return 1.0/(Math.sqrt(2.0*Math.PI)*seta)*Math.exp(
        		-0.5*Math.pow((x-u)/seta, 2));		
    }
    public AreaChart.Series<Number, Number> createSeriesXN() {
    	final AreaChart.Series<Number, Number> series = new AreaChart.Series<>();
    	for(double i=-4;i<=4;i+=0.1) {
    		series.getData().add(new Data(i,normalDistribution(i,0,1)));
    	}
		return series;
    }
    public Series<Number, Number> createSeriesSinx() {
    	Series<Number, Number> series = new Series<>();
    	for(double i=-Math.PI;i<=Math.PI;i+=0.1) {
    		series.getData().add(new Data(i, Math.sin(i) ));
    	}
		return series;
    }
    public Parent createContent() {
        xAxis = new NumberAxis();
        xAxis.setLabel("X Values");
        yAxis = new NumberAxis();
        yAxis.setLabel("Y Values");
      
        chart = new AreaChart(xAxis, yAxis);
        Series<Number, Number> xn = createSeriesXN();
        xn.setName("X-N(0,1)");
        chart.getData().add(xn);
        

        return chart;
    }


    @Override public void start(Stage primaryStage) throws Exception {
        primaryStage.setScene(new Scene(createContent()));
        primaryStage.setTitle("AreaChart");
        primaryStage.show();
    }
    public static void main(String[] args) {
    	System.out.println(2 >>> 3);
        launch(args);
    }
}

在这里插入图片描述

//        Series<Number, Number> xn = createSeriesXN();
//        xn.setName("X-N(0,1)");
//        chart.getData().add(xn);
        Series<Number, Number> sinx = createSeriesSinx();
        sinx.setName("Sin(x)");
        chart.getData().add(sinx);

在这里插入图片描述

        Series<Number, Number> xn = createSeriesXN();
        xn.setName("X-N(0,1)");
        chart.getData().add(xn);
        Series<Number, Number> sinx = createSeriesSinx();
        sinx.setName("Sin(x)");
        chart.getData().add(sinx);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值