Есть ли способ повысить точность отметок на графике JavaFX? - PullRequest
1 голос
/ 03 мая 2020

Я обнаружил проблему с десятичной точностью на метках меток диаграммы JavaFX при изменении автоматического выбора диапазона на оси диаграммы на false. Вот краткий пример:

package chart;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.ScatterChart;
import javafx.scene.chart.XYChart;
import javafx.scene.chart.XYChart.Data;
import javafx.stage.Stage;
public class Chart extends Application {
    @Override
    public void start(Stage primaryStage) {
        NumberAxis xAxis = new NumberAxis();
        NumberAxis yAxis = new NumberAxis();
        yAxis.setAutoRanging(false);
        yAxis.setForceZeroInRange(false);
        yAxis.setUpperBound(1);
        yAxis.setLowerBound(.999);
        yAxis.setTickUnit(.0001);
        ScatterChart<Number, Number> chart = new ScatterChart<>(xAxis, yAxis);
        chart.getData().add(new XYChart.Series<>());
        Scene scene = new Scene(chart, 600, 300);
        primaryStage.setScene(scene);
        primaryStage.show();
        chart.getData().get(0).getData().add(new Data(1, .9999));
    }
    public static void main(String[] args) {
        launch(args);
    }
}

Если автоматический диапазон установлен в true, отметка отметки на оси Y go до 4 десятичных разрядов, в то время как она ложится только в 3 места, когда она ложна. Это также делает какое-то округление до меток. Как я могу получить такую ​​же точность на автодиапазоне без его включения?

1 Ответ

0 голосов
/ 04 мая 2020

Свойство tickUnit NumberAxis устанавливается автоматически, если autoRanging имеет значение true. Таким образом, установив автоматический выбор диапазона, вы указываете оси игнорировать ваш пользовательский тик. См. документацию .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...