2016-09-23 3 views
0

シンボルの形状、色、パディング、半径を変更できますが、シンボルのサイズを変更するCSSアイテムが見つからないようです。javafx散布図のチャート記号のサイズを変更するにはどうすればよいですか?

私は、小さなSVGパスでシンボルを再作成した場合、その方法が使えるかもしれないと思っていましたが、私の小さな形状はちょうど拡大されるように見えます。

私はより小さい記号が必要ですが、これまでスケールする方法が見つかりませんでした。

+0

こんにちは、あなたはそのようなものが必要ですか? http://postimg.org/image/fgxpzf3tp/ – BadVegan

+0

@BadVeganはい!どうやったの? –

答えて

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); 
    } 
} 

シンボルがenter image description here

+0

くそ、スタックペインのサイズが鍵です!ありがとう。 –

0

大きなされているCSSは、あなたがこの例では、このシリーズの半径

.default-color0.chart-symbol { 
    -fx-background-radius: 30px; 
} 

のために設定することができますwherですこれは私が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; 
} 
関連する問題