0

我正在XYLineChart使用 iTextPDF 将 a 导出为 PDF。然而,绘图渲染器会产生一些丑陋的故障,这些故障似乎来自它分别绘制每条线,而不是产生连接的折线/连续形状......

以下是使用setBaseShapesFilled(false)and时的放大图setSeriesStroke(0, new BasicStroke(2f))

在此处输入图像描述

有没有办法解决这个问题并将折线呈现为一个形状,以便正确连接线段?

4

3 回答 3

2

默认情况下,有一个显式开关drawSeriesLineAsPathfalse。启用它:

val r = plot.getRenderer.asInstanceOf[XYLineAndShapeRenderer]
r.setDrawSeriesLineAsPath(true)

产生正确的结果:

在此处输入图像描述

于 2013-10-23T09:57:37.820 回答
1

看着XYLineAndShapeRenderer,它确实使用了GeneralPathwithlineTo语句(除非有一点!p.isLastPointGood()- 这不应该是这种情况(我认为只有当它为空时才不好)......

所以我不知道为什么会这样。一种解决方法是使用样条渲染器

val r = new XYSplineRenderer
r.setBaseShapesVisible(false)
plot.setRenderer(r)

在此处输入图像描述

于 2013-10-23T09:50:31.573 回答
1

还要考虑改变笔画的渲染属性:

XYPlot plot = (XYPlot) chart.getPlot();
XYItemRenderer r = plot.getRenderer();
r.setSeriesStroke(0, new BasicStroke(
    16f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));

图片

于 2013-10-24T02:01:03.153 回答