Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX-StackedAreChart和方法setLowerBound_Java_Css_Eclipse_Javafx_Stacked Area Chart - Fatal编程技术网

JavaFX-StackedAreChart和方法setLowerBound

JavaFX-StackedAreChart和方法setLowerBound,java,css,eclipse,javafx,stacked-area-chart,Java,Css,Eclipse,Javafx,Stacked Area Chart,我对StackedAreaChart和setLowerBound类有一些问题。 当我将autoRangingProperty设置为true时,一切正常 但是当我关闭自动范围并设置一些参数时,我有一些错误 谁有办法解决这个问题。我在StackedAreaChart上遇到了类似的问题,我必须在将所有值添加到图表之前有效地偏移它们,以便图表实际上从零开始,然后调整y轴标签以使其正确 setAutoRanging(false) setForceZeroInRange(假) 计算出要添加到图形中的值的

我对StackedAreaChart和setLowerBound类有一些问题。 当我将autoRangingProperty设置为true时,一切正常

但是当我关闭自动范围并设置一些参数时,我有一些错误


谁有办法解决这个问题。

我在StackedAreaChart上遇到了类似的问题,我必须在将所有值添加到图表之前有效地偏移它们,以便图表实际上从零开始,然后调整y轴标签以使其正确

  • setAutoRanging(false)
  • setForceZeroInRange(假)
  • 计算出要添加到图形中的值的范围,存储最大值和最小值
  • 将所有值相加,并减去最小值
  • setLowerBound(0)
  • setUpperBound(…)最大值减去最小值
  • 在y轴上设置TickLabelFormatter
    ,并在
    StringConverter
    toString
    方法中,在格式化之前将最小值添加到值中
  • e、 g.您的数据量在3到10之间。将它们作为范围0到7添加到图形中。0的y轴标签将调整为3,1将调整为4,以此类推

    我的图表相当复杂,但如果我有时间简化它,我将发布一些示例代码,但上面的内容应该足够继续了。

    我在想,我怎样才能放大这个图表。 在线形图类中,工作正常:)

    import java.util.Random;
    
    import javafx.application.Application;
    import javafx.scene.Group;
    import javafx.scene.Scene;
    import javafx.scene.chart.NumberAxis;
    import javafx.scene.chart.StackedAreaChart;
    import javafx.scene.chart.XYChart;
    import javafx.scene.layout.BorderPane;
    import javafx.scene.layout.StackPane;
    import javafx.stage.Stage;
    
    public class TestStackedAreaChart extends Application {
    
        StackPane mainGraphStackPane = null;
        BorderPane pane;
    
        public static void main(String[] args) {
            launch(args);
        }
    
        @Override
        public void start(Stage stage) {
            // /
            Random generator = new Random();
    
            XYChart.Series<Number, Number> series1 = new XYChart.Series<>(); // line
            XYChart.Series<Number, Number> series2 = new XYChart.Series<>(); // down
            XYChart.Series<Number, Number> series3 = new XYChart.Series<>(); // up
            for (int i = 1; i < 50; i++) {
                Double value = generator.nextDouble() + 1;
                series1.getData().add(new XYChart.Data<Number, Number>(i, value));
                Double Ymin = value - generator.nextDouble() * 0.2;
                series2.getData().add(new XYChart.Data<Number, Number>(i, Ymin));
                Double Ymax = (value - Ymin) + generator.nextDouble() * 0.2;
                series3.getData().add(new XYChart.Data<Number, Number>(i, Ymax));
    
            }
            // /
    
            final NumberAxis xAxisLC = new NumberAxis();
            final NumberAxis yAxisLC = new NumberAxis();
            /////////what's wrong
            yAxisLC.autoRangingProperty().set(false);
            yAxisLC.setMinorTickLength(yAxisLC.getTickLength());
            yAxisLC.setMinorTickCount(0);
            yAxisLC.setUpperBound(2.5);
            yAxisLC.setLowerBound(1.0); //when I set 0.0 is OK
            yAxisLC.setTickUnit(0.2);
            ///////
            pane = new BorderPane();
            mainGraphStackPane = new StackPane();
            mainGraphStackPane.getChildren().add(pane);
    
            StackedAreaChart<Number, Number> areaChart = new StackedAreaChart<Number, Number>(
                    xAxisLC, yAxisLC);
            areaChart.setCreateSymbols(false);
            areaChart.setAlternativeRowFillVisible(false);
            areaChart.setAnimated(false);
            areaChart.setLegendVisible(false);
            areaChart.getData().add(series2);
            areaChart.getData().add(series3);
    
            Scene scene = new Scene(mainGraphStackPane);
            mainGraphStackPane.getChildren().add(areaChart);
            mainGraphStackPane.getStylesheets().add("chart.css");
            stage.setScene(scene);
            Group root = new Group();
            pane.getChildren().add(root);
            stage.show();
            stage.setWidth(stage.getWidth() + 1);
            stage.setHeight(stage.getHeight() + 1);
    
        }
    }
    
    @CHARSET "UTF-8";
    .default-color0.chart-area-symbol { -fx-background-color: #e9967a, #ffa07a; }
    .default-color1.chart-area-symbol { -fx-background-color: #e9967a, #ffa07a; }
    
    .default-color0.chart-series-area-line { -fx-stroke: #ffaa00; }
    .default-color1.chart-series-area-line { -fx-stroke: #ffaa00; }
    
    .default-color0.chart-series-area-fill { -fx-fill: #ffff0055; }
    .default-color1.chart-series-area-fill { -fx-fill: #ffaa005