我有 10 个系列的数据要绘制在 LineChart 上。我希望每个系列的线条或图例都有不同的颜色。不幸的是,JavaFX 默认只支持 8 系列。我曾尝试通过如下所示的 css 对其进行更改,但没有奏效。
.default-color0.chart-series-line { -fx-stroke: #1F77B4; }
.default-color1.chart-series-line { -fx-stroke: #FF7F0E; }
.default-color2.chart-series-line { -fx-stroke: #2CA02C; }
.default-color3.chart-series-line { -fx-stroke: #D62728; }
.default-color4.chart-series-line { -fx-stroke: #9467BD; }
.default-color5.chart-series-line { -fx-stroke: #8C564B; }
.default-color6.chart-series-line { -fx-stroke: #E377C2; }
.default-color7.chart-series-line { -fx-stroke: #7F7F7F; }
.default-color8.chart-series-line { -fx-stroke: #BCBD22; }
.default-color9.chart-series-line { -fx-stroke: #17BECF; }
.default-color0.chart-line-symbol { -fx-background-color: #1F77B4; -fx-background-radius: 0;}
.default-color1.chart-line-symbol { -fx-background-color: #FF7F0E; -fx-background-radius: 0;}
.default-color2.chart-line-symbol { -fx-background-color: #2CA02C; -fx-background-radius: 0;}
.default-color3.chart-line-symbol { -fx-background-color: #D62728; -fx-background-radius: 0;}
.default-color4.chart-line-symbol { -fx-background-color: #9467BD; -fx-background-radius: 0;}
.default-color5.chart-line-symbol { -fx-background-color: #8C564B; -fx-background-radius: 0;}
.default-color6.chart-line-symbol { -fx-background-color: #E377C2; -fx-background-radius: 0;}
.default-color7.chart-line-symbol { -fx-background-color: #7F7F7F; -fx-background-radius: 0;}
.default-color8.chart-line-symbol { -fx-background-color: #BCBD22; -fx-background-radius: 0;}
.default-color9.chart-line-symbol { -fx-background-color: #17BECF; -fx-background-radius: 0;}
然后我尝试用java源代码编写它。
int i = 0;
for (XYChart.Series<Number, Number> d : data) {
d.getNode().setStyle("-fx-stroke: #" + colors.get(i) + ";");
i++;
}
它适用于该系列。但我不知道如何对线符号(图例)做同样的事情。有什么帮助吗?