我可以更改符號形狀,顏色,填充,半徑,但我似乎無法找到將更改符號大小的CSS項目。如何更改javafx散點圖中圖表符號的大小?
我曾經想過,如果我用較小的SVG路徑重新創建符號,這可能是一種方法,但是看起來我的較小形狀無論如何都會被放大。
我需要更小的符號,但到目前爲止還沒有找到一種方法來縮放它們。
我可以更改符號形狀,顏色,填充,半徑,但我似乎無法找到將更改符號大小的CSS項目。如何更改javafx散點圖中圖表符號的大小?
我曾經想過,如果我用較小的SVG路徑重新創建符號,這可能是一種方法,但是看起來我的較小形狀無論如何都會被放大。
我需要更小的符號,但到目前爲止還沒有找到一種方法來縮放它們。
以下是代碼和循環,您可以在其中找到所有符號並更改寬度和高度。我只知道這種方式。如果您在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 wher你可以爲這個系列半徑
.default-color0.chart-symbol {
-fx-background-radius: 30px;
}
該死的,堆棧窗格大小是關鍵!謝謝。 –
這是我如何在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;
}
你好,你需要那樣的東西? http://postimg.org/image/fgxpzf3tp/ – BadVegan
@BadVegan是的!你是怎麼做到的? –