我可以更改符号形状,颜色,填充,半径,但我似乎无法找到会改变符号大小的CSS项目。
我曾经想过,如果我重新创建具有较小SVG路径的符号,这可能是一种方法,但看起来我的较小形状无论如何都会扩大规模。
我需要更小的符号,但到目前为止还没有找到缩放它们的方法。
答案 0 :(得分:2)
这是代码和循环,您可以在其中找到所有符号并更改宽度和高度。我只知道这种方式。如果您在CSS中尝试此操作,您还将更改图表下的图例。
public class Chart extends Application {
@Override
public void start(Stage stage) {
//set Axis
final NumberAxis xAxis = new NumberAxis();
final NumberAxis yAxis = new NumberAxis();
//chart
final ScatterChart<Number, Number> lineChart = new ScatterChart<Number, Number>(xAxis, yAxis);
//prepare series
XYChart.Series series1 = new XYChart.Series();
series1.getData().add(new XYChart.Data(1, 2));
series1.getData().add(new XYChart.Data(2, 2));
series1.getData().add(new XYChart.Data(3, 1));
series1.getData().add(new XYChart.Data(3, 3));
series1.getData().add(new XYChart.Data(5, 2));
HBox hbox = new HBox();
//add series to chart
lineChart.getData().addAll(series1);
//take all series
for (XYChart.Series<Number, Number> series : lineChart.getData()) {
//for all series, take date, each data has Node (symbol) for representing point
for (XYChart.Data<Number, Number> data : series.getData()) {
// this node is StackPane
StackPane stackPane = (StackPane) data.getNode();
stackPane.setPrefWidth(50);
stackPane.setPrefHeight(50);
}
}
hbox.getChildren().addAll(lineChart);
Scene scene = new Scene(hbox, 800, 600);
scene.getStylesheets().add(getClass().getResource("/resources/chart.css").toExternalForm());
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
以下是您可以为此系列半径设置的CSS
.default-color0.chart-symbol {
-fx-background-radius: 30px;
}
答案 1 :(得分:1)
这是我在SVG路径中创建矩形然后在css中更改大小的方式。
.chart-symbol{
-fx-shape: "M 20.0 20.0 v24.0 h 10.0 v-24 Z";
-fx-padding: 7px 7px 7px 7px;
}