【发布时间】:2017-07-25 02:57:51
【问题描述】:
我想在 javafx 中绘制一个峰值图,但是没有一个类可以完成我的目标。所以我将“LineChart”修改为我的“峰值图”,它看起来that。但是我想将X轴移动到0刻度(y轴),我该怎么做才能实现它。
顺便说一句,如果你有更好的方法来实现“峰图”,请给我一些建议。
谢谢!
public void start(Stage stage) {
stage.setTitle("Line Chart Sample");
final NumberAxis xAxis = new NumberAxis();
final NumberAxis yAxis = new NumberAxis();
xAxis.setLabel("X");
yAxis.setLabel("Y");
final LineChart<Number, Number> lineChart = new LineChart<>(xAxis, yAxis);
lineChart.setTitle("Peak Map");
XYChart.Series<Number, Number> series1 = new XYChart.Series<>();
series1.setName("Portfolio 1");
series1.getData().add(new XYChart.Data<Number, Number>(1, 0));
series1.getData().add(new XYChart.Data<Number, Number>(1, 14));
XYChart.Series<Number, Number> series2 = new XYChart.Series<>();
series2.setName("Portfolio 2");
series2.getData().add(new XYChart.Data<Number, Number>(2, 0));
series2.getData().add(new XYChart.Data<Number, Number>(2, 34));
XYChart.Series<Number, Number> series3 = new XYChart.Series<>();
series3.setName("Portfolio 3");
series3.getData().add(new XYChart.Data<Number, Number>(3, 0));
series3.getData().add(new XYChart.Data<Number, Number>(3, 35));
XYChart.Series<Number, Number> series4 = new XYChart.Series<>();
series4.setName("Protfolio 4");
series4.getData().add(new XYChart.Data<>(2, 0));
series4.getData().add(new XYChart.Data<>(2, -8));
Scene scene = new Scene(lineChart, 800, 600);
lineChart.getData().addAll(series1, series2, series3, series4);
lineChart.setCreateSymbols(false);
lineChart.setLegendVisible(false);
stage.setScene(scene);
stage.show();
}
【问题讨论】:
-
什么是峰值图?你有链接到解释它的东西吗?
-
很抱歉我不能给你一个确切的定义,因为它更像是一个自定义图表。但它看起来像https://i.stack.imgur.com/cmvys.png。在图中,像(x1, y1)这样的每个点决定了从(x1, 0)到(x1, y1)的一条直线