gpt4 book ai didi

JavaFX - 为什么 LineChart 在几次绘图后重复颜色?

转载 作者:行者123 更新时间:2023-11-30 07:07:31 26 4
gpt4 key购买 nike

我尝试绘制 14 个数据集,但折线图中的颜色有问题。我在 .css 文件中正确定义了 14 种颜色:

.default-color0.chart-series-line { -fx-stroke: red; } 
....
.default-color13.chart-series-line { -fx-stroke: goldenrod; }

一切正常,线条有不同的颜色,直到 7 个数据。然后从 color0 到 color7 再次重复线条的颜色。我不知道发生了什么。此外,当我不添加任何 .css 样式时,折线图会自动生成颜色,但它会在 7 个数据后重复颜色。

最佳答案

在 Java 8 中,系列的默认颜色编码由以下因素决定:

series.defaultColorStyleClass = DEFAULT_COLOR+(nextClearBit%8);

(这是来自 JavaFX XYChart 源的内部实现代码)。您可以看到它在计算样式类时使用模 8 运算。这意味着您在 0 到 7 范围之外定义的任何默认样式类都将被忽略。

Is there any other posibilities to force the LineChart to plot more colors with style class?

是的,您不必使用默认颜色,您可以根据需要指定任意数量的自定义颜色。例如,您可以看到以下样式表专门按系列编号(仅受图表上的系列数限制)颜色,而不是默认颜色(8 个系列后会重复):

.chart-series-line.series0 {
-fx-stroke: green;
}
.chart-line-symbol.series0 {
-fx-background-color: green, white;
}

.chart-series-line.series1 {
-fx-stroke: black;
}
.chart-line-symbol.series1 {
-fx-background-color: black, white;
}

.chart-series-line.series2 {
-fx-stroke: crimson;
}
.chart-line-symbol.series2 {
-fx-background-color: crimson, white;
}

使用上述样式的示例图像只显示了三个系列,但希望您明白它可以扩展到您想要的任意多个系列和颜色:

image

另见:

关于JavaFX - 为什么 LineChart 在几次绘图后重复颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24899115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com