【发布时间】:2020-11-01 22:50:23
【问题描述】:
错误或功能?当该值为 0(最小值)或 1(最大值)时,该系列似乎被剪裁了。我希望红色层在前面而不是被剪掉。
将 min,max 设置为 -0.1,1.1 可以避免剪裁,但会造成混乱。
除了调整背景和填充之外,我想不出任何其他尝试,但没有效果。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.*;
import javafx.stage.Stage;
public class LineChartClipping extends Application {
LineChart makeRoot() {
NumberAxis xAxis = new NumberAxis();
NumberAxis yAxis = new NumberAxis(0, 1, 1); // (-0.1, 1.1, 1);
var chart = new LineChart(xAxis, yAxis);
var series = new LineChart.Series<>();
chart.getData().add(series);
double x = 0;
for (var value : new double[]{0.5, 0, 1.0}) {
series.getData().add(new LineChart.Data<>(x, value)); x += 2;
series.getData().add(new LineChart.Data<>(x, value));
}
return chart;
}
@Override
public void start(Stage stage) {
stage.setScene(new Scene(makeRoot(), 180, 120));
stage.show();
}
public static void main(String[] args) { launch(args); }
}
在我的用例中,我这样做
chart.setCreateSymbols(false);
xAxis.setTickMarkVisible(false);
xAxis.setMinorTickVisible(false);
xAxis.setTickLabelsVisible(false);
所以最小值/最大值处的水平线如下所示:
- macOS Catalina、Retina iMac (HiDPI)
- JavaFX 15.0.1、Java 15.0.1
【问题讨论】:
-
这是一个可重现的例子,从实际代码中显着减少。我不知道还有什么可以删除的,这会使它在本质上更简单。
-
没有看到任何代码这里 ..请阅读参考的帮助页面并采取相应的行动
-
@kleopatra 我试图在这里用最少的代码发布。所以不会允许的。
-
剥离它,只是一个简单的图表(一旦解决了这个问题就可以移动到自定义图表)与您的配置和数据..这是少数几行,不应该太多。