java - 如何将javafx条形图刻度线设置为条形图的中间?

标签 java javafx bar-chart

如何将javafx条形图刻度设置为条形的中间?

我在刻度线和生成的条形图之间发现了一些间隙。

public static class ContinentBarChart extends Application {

    @Override
    public void start(Stage stage) {
        stage.setTitle("Numebr of reqests based on continent");
        final CategoryAxis xAxis = new CategoryAxis();
        //xAxis.setStyle("-fx-font-size: " + 20 + "px;");
        xAxis.tickLabelFontProperty().set(Font.font(null,FontWeight.BOLD, 15));
        xAxis.setTickLabelRotation(90);

        final NumberAxis yAxis = new NumberAxis();
        final BarChart<String, Number> chart = new BarChart<String, Number>(xAxis, yAxis);
        //bc.autosize();
        // bc.setBarGap(-50);
        chart.setTitle("Number of reqests based on continent");
        xAxis.setLabel("Country");
        yAxis.setLabel("Number of requests");

        HashMap<String, HashMap<String, Integer>> continentCountryMap = GenericUtil
                .extractContinentCountryMapFromLogs();

        for (String continent : continentCountryMap.keySet()) {
            HashMap<String, Integer> exisitingCountry = continentCountryMap.get(continent);
            exisitingCountry = (HashMap<String, Integer>) GenericUtil.sortByValue(exisitingCountry);

            XYChart.Series series = new XYChart.Series();
            series.setName(continent);

            Set<String> countryList = exisitingCountry.keySet();
            int i = 0;
            for (String countryName : countryList) {
                if (i < 10) {
                    series.getData().add(new XYChart.Data(countryName, exisitingCountry.get(countryName)));
                    i++;
                } else {
                    break;
                }
            }
            chart.getData().add(series);

        }

        Scene scene = new Scene(chart);
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

如何使图表正常?我添加了解释我的要求的图像。

bar chart image

最佳答案

我找到了解决方法。但我确信这不会是精确的解决方案。

我在图表上添加了以下代码片段。

chart.setBarGap(-30);

bar chart

关于java - 如何将javafx条形图刻度线设置为条形图的中间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49303779/

相关文章:

Java EE CDI 实例 |如何获得真正的类(class)

java - 方法什么时候应该返回 CompletableFuture?

java - Java JavaFX 应用程序中的多线程问题

binding - 无法设置 Javafx 组合框绑定(bind)值异常

java - 如何取消加载网站的 webview?

d3.js - X 轴不显示在使用 d3.js 的条形图上

r - 在 R 中创建 "The Economist"样式图?

java - 给 Jsoup 提供一个 url(重定向的是带空格的 url)会导致错误。怎么解决这个问题?

R:在条形图中,中点不居中 w.r.t.酒吧

java - 一种确定数独中的数字在哪个框中的方法