css - 如何为单个系列条形图添加 3 个图例?? JAVAFX

标签 css javafx-2 bar-chart legend color-scheme

这是我生成 10 个不同颜色条的代码。我想分别添加图例,但它只显示黄色图例我可以改变它的颜色,但我想要 3 个图例。

我认为它只显示一种颜色,因为只有 1 个系列。是否可以为单个系列添加超过 1 个图例?

输出:enter image description here

或者如果我可以将这张图片作为图例添加到我的图表的中间左侧

enter image description here

我需要如何在条形图中显示图像或如何为单个系列条形图创建 3 个不同的标签

import javafx.application.Application;
import javafx.beans.value.*;
import javafx.scene.*;
import javafx.scene.chart.*;
import javafx.stage.Stage;

public class DynamicallyColoredBarChart extends Application {

    @Override
    public void start(Stage stage) {
        final CategoryAxis xAxis = new CategoryAxis();
        xAxis.setLabel("Bars");
        final NumberAxis yAxis = new NumberAxis();
        yAxis.setLabel("Value");

        final BarChart<String, Number> bc = new BarChart<>(xAxis, yAxis);
        bc.setLegendVisible(false);

        XYChart.Series series1 = new XYChart.Series();

        for (int i = 0; i < 10; i++) {
            // change color of bar if value of i is >5 than red if i>8 than blue
            final XYChart.Data<String, Number> data = new XYChart.Data("Value " + i, i);
            data.nodeProperty().addListener(new ChangeListener<Node>() {
                @Override
                public void changed(ObservableValue<? extends Node> ov, Node oldNode, Node newNode) {
                    if (newNode != null) {
                        if (data.getYValue().intValue() > 8) {
                            newNode.setStyle("-fx-bar-fill: navy;");
                        } else if (data.getYValue().intValue() > 5) {
                            newNode.setStyle("-fx-bar-fill: red;");
                        }
                    }
                }
            });
            series1.getData().add(data);
        }
        bc.getData().add(series1);
        stage.setScene(new Scene(bc));
        stage.show();
    }

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

最佳答案

要在左侧放置图像,您只需将图像和图表添加到 HBox:

 HBox root = new HBox(5);
 root.getChildren().addAll(image, bc);
 stage.setScene(new Scene(root));

关于css - 如何为单个系列条形图添加 3 个图例?? JAVAFX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15358093/

相关文章:

javascript - 我想在弹出框中启用javascript

html - 如何在html css中将滚动条添加到父div?

java - 混音 Swing/FX : can't dispose a dialog from fxml controller

javascript - 不确定条形图中条形图的边距来自哪里

javascript - 使用 Chart.js 在条形图中显示未找到记录消息

android - CSS 和 JavaScript 在 Android WebView 中不起作用

JavaFX - 无法加载外部 CSS 主题

javafx-2 - JavaFX 场景构建器 : how to display empty rows in table view? 如何在 tableview 中为 TableColumn 名称设置样式?

java - 无法在 Javafx 2.0 上实例化 Path() 类

r - 如何在 R 中生成 3-D 条形图?