javafx折线图LineChart

在这里插入图片描述

在这里插入图片描述

代码

public class TestLineChart extends Application {
 
    private LineChart 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 XYChart.Series<Double,Double> createSeries(){
    	Series series = new LineChart.Series<>();
    	series.setName("X-Y(0,1)");
    	for(double i=-4;i<=4;i+=0.1) {
    		series.getData().add(new Data(i,normalDistribution(i,0,1)));
    	}
		return series;
    }
    public Parent createContent() {
        xAxis = new NumberAxis();
        xAxis.setLabel("X-Axis");
        yAxis = new NumberAxis();
        yAxis.setLabel("Y-Axis");
        
        chart = new LineChart(xAxis, yAxis);
        chart.setId("linechart");

        chart.getData().add(createSeries());
        chart.setTitle("折线图");
        final String liveScatterChartCss =
                getClass().getResource("LineChartUtility.css").toExternalForm();
        chart.getStylesheets().add(liveScatterChartCss);
        chart.setCreateSymbols(false);
        return chart;
    }
 
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setScene(new Scene(createContent()));
        primaryStage.show();
    }
    public static void main(String[] args) { launch(args);}
}

CSS

线的颜色
.default-color0.chart-series-line {
	-fx-stroke:#55ddff
}
圈的颜色,圈的填充色
.chart-line-symbol.default-color0{
	-fx-background-color: blue,red;
}
是否隐藏圈节点
.default-color0.chart-line-symbol { -fx-background-color: transparent; }

当然圈作为一个节点,当然是可以设置提示框的,请见Tooltip。
在这里插入图片描述

JavaFX中,创建一个项目案例,我们可以演示如何从饼状图切换到折线图。首先,确保你已经设置了JavaFX环境并且熟悉基本的JavaFX编程。以下是一个简单的步骤: 1. **导入库**: 在你的Java项目中,添加JavaFX的库依赖。如果你使用的是Maven,可以在`pom.xml`中加入以下依赖: ```xml <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-controls</artifactId> <version>16.0.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-graphics</artifactId> <version>16.0.1</version> <scope>provided</scope> </dependency> ``` 2. **创建场景和图表**: 创建一个`Scene`并添加一个`PieChart`和一个`LineChart`。饼状图用于显示初始数据,折线图则用于切换显示: ```java PieChart pieChart = new PieChart(); LineChart lineChart = new LineChart(...); // 初始化LineChart, 可能需要X/Y轴数据系列 VBox layout = new VBox(pieChart, lineChart); Scene scene = new Scene(layout, 800, 600); ``` 3. **事件监听**: 添加一个`EventHandler`来监听用户交互,比如点击按钮切换图表类型: ```java Button switchButton = new Button("切换到折线图"); switchButton.setOnAction(event -> { pieChart.setVisible(false); lineChart.setVisible(true); }); layout.getChildren().add(switchButton); ``` 4. **启动应用**: 最后,启动JavaFX应用程序,并显示场景: ```java Platform.runLater(() -> primaryStage.setScene(scene)); primaryStage.show(); ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值