JavaFX XYChart log chart

I have XYChart graph data as linear steps along the Y axis, I would like to build as a logarithmic or semi-logarithmic scale of Y, how to change my next code?

public class BaseXYChart extends Application { @Override public void start(Stage stage) { stage.setTitle("Linear plot"); final CategoryAxis xAxis = new CategoryAxis(); final NumberAxis yAxis = new NumberAxis(1, 22, 0.5); yAxis.setTickLabelFormatter(new NumberAxis.DefaultFormatter(yAxis){ @Override public String toString(Number object){ return String.format("%7.2f", object); } }); final LineChart<String, Number>lineChart = new LineChart<String, Number>(xAxis, yAxis); lineChart.setCreateSymbols(false); lineChart.setAlternativeRowFillVisible(false); XYChart.Series series1 = new XYChart.Series(); series1.getData().add(new XYChart.Data("Jan", 1)); series1.getData().add(new XYChart.Data("Feb", 1.5)); series1.getData().add(new XYChart.Data("Mar", 2)); series1.getData().add(new XYChart.Data("Apr", 2.5)); series1.getData().add(new XYChart.Data("May", 3)); series1.getData().add(new XYChart.Data("Jun", 4)); series1.getData().add(new XYChart.Data("Jul", 6)); series1.getData().add(new XYChart.Data("Aug", 9)); series1.getData().add(new XYChart.Data("Sep", 12)); series1.getData().add(new XYChart.Data("Oct", 15)); series1.getData().add(new XYChart.Data("Nov", 20)); series1.getData().add(new XYChart.Data("Dec", 22)); BorderPane pane = new BorderPane(); pane.setCenter(lineChart); Scene scene = new Scene(pane, 800, 600); lineChart.getData().addAll(series1); stage.setScene(scene); stage.show(); } public static void main(String[] args) { launch(args); } } 

Thank you all

+4
source share
1 answer

I think this is not possible in JavaFX Vanilla. But you can look here: http://blog.dooapp.com/2013/06/logarithmic-scale-strikes-back-in.html

+3
source

Source: https://habr.com/ru/post/1414334/


All Articles