将JavaFX图表保存为pdf不会显示x和y-axsis值

将JavaFX图表保存为pdf不会显示x和y-axsis值,java,pdf,javafx,pdfbox,scatter,Java,Pdf,Javafx,Pdfbox,Scatter,我有一张散点图: final NumberAxis xAxis = new NumberAxis(0, 10, 1); final NumberAxis yAxis = new NumberAxis(-100, 500, 100); final ScatterChart<Number, Number> sc = new ScatterChart<Number, Number>(xAxis, yAxis); xAxis.setLabel("Age (years)"); yA

我有一张散点图:

final NumberAxis xAxis = new NumberAxis(0, 10, 1);
final NumberAxis yAxis = new NumberAxis(-100, 500, 100);
final ScatterChart<Number, Number> sc = new ScatterChart<Number, Number>(xAxis, yAxis);
xAxis.setLabel("Age (years)");
yAxis.setLabel("Returns to date");
sc.setTitle("Investment Overview");

XYChart.Series series1 = new XYChart.Series();
series1.setName("Equities");
series1.getData().add(new XYChart.Data(4.2, 193.2));
series1.getData().add(new XYChart.Data(2.8, 33.6));
series1.getData().add(new XYChart.Data(6.2, 24.8));
series1.getData().add(new XYChart.Data(1, 14));
series1.getData().add(new XYChart.Data(1.2, 26.4));
series1.getData().add(new XYChart.Data(4.4, 114.4));
series1.getData().add(new XYChart.Data(8.5, 323));
series1.getData().add(new XYChart.Data(6.9, 289.8));
series1.getData().add(new XYChart.Data(9.9, 287.1));
series1.getData().add(new XYChart.Data(0.9, -9));
series1.getData().add(new XYChart.Data(3.2, 150.8));
series1.getData().add(new XYChart.Data(4.8, 20.8));
series1.getData().add(new XYChart.Data(7.3, -42.3));
series1.getData().add(new XYChart.Data(1.8, 81.4));
series1.getData().add(new XYChart.Data(7.3, 110.3));
series1.getData().add(new XYChart.Data(2.7, 41.2));

XYChart.Series series2 = new XYChart.Series();
series2.setName("Mutual funds");
series2.getData().add(new XYChart.Data(5.2, 229.2));
series2.getData().add(new XYChart.Data(2.4, 37.6));
series2.getData().add(new XYChart.Data(3.2, 49.8));
series2.getData().add(new XYChart.Data(1.8, 134));
series2.getData().add(new XYChart.Data(3.2, 236.2));
series2.getData().add(new XYChart.Data(7.4, 114.1));
series2.getData().add(new XYChart.Data(3.5, 323));
series2.getData().add(new XYChart.Data(9.3, 29.9));
series2.getData().add(new XYChart.Data(8.1, 287.4));

sc.getData().addAll(series1, series2);
Scene scene = new Scene(sc, 500, 400);
Stage stage = (Stage) this.bttn_LoadCSVFolder.getScene().getWindow();
但是,当我将图表保存到pdf(甚至只是图像)时,axsis的x和y值将不会显示:

将此添加到您的代码中:

xAxis.setAnimated(false); 
yAxis.setAnimated(false);
原因:“这是因为标签是动画的(淡入),所以它们在第一帧(您捕获的)上不可见。”()


如果图像看起来模糊,请参见。

为什么图像的大小为1 x 1<代码>新缓冲区映像(1,1,1)@TilmanHausherr-这可能与问题无关,因为“如果提供的对象为null、太小或图像像素无法轻松转换为的类型,则将创建新的BuffereImage”。传递
null
可能对性能和可读性都有好处,但它不应该影响结果……好吧。。。另一件奇怪的事情是,文本块中有一个绘图图像。我不知道这样行不行。其他尝试事项:将BuffereImage保存到带有
ImageIO.write()
的文件中,是否有该映像?如果不是,那就不是PDFBox问题。顺便说一句,对于图表,请使用无损工厂,边缘锐利的图像不应进行Jpeg压缩,这看起来不太好。Jpeg最适合用于照片。@直到图像被创建为止。这是解决我问题的原因。唯一的问题是,正确的图形在某种程度上是模糊的/你可以看到像素。为此,你要么把原始图像放大(然后再放大),要么用矢量图形来完成整个过程。
xAxis.setAnimated(false); 
yAxis.setAnimated(false);