我正在使用iTextPDF将XYLineChart
导出为PDF。然而,绘图渲染器会产生一些难看的毛刺,这些毛刺似乎来自于它分别绘制每条线,而不是产生连接的折线/连续形状......
以下是使用setBaseShapesFilled(false)
和setSeriesStroke(0, new BasicStroke(2f))
时的放大:
有没有办法解决这个问题并将折线渲染为一个形状,以便正确连接这些线段?
答案 0 :(得分:2)
默认情况下,显式切换drawSeriesLineAsPath
为 false 。启用它:
val r = plot.getRenderer.asInstanceOf[XYLineAndShapeRenderer]
r.setDrawSeriesLineAsPath(true)
产生正确的结果:
答案 1 :(得分:1)
查看XYLineAndShapeRenderer
,确实使用带有GeneralPath
语句的lineTo
(除非有!p.isLastPointGood()
- 这应该是不是这样的(我认为只有它是空的才是坏的)......
所以我不知道为什么会这样。解决方法是使用样条线渲染器
val r = new XYSplineRenderer
r.setBaseShapesVisible(false)
plot.setRenderer(r)
答案 2 :(得分:1)
还考虑改变笔划的渲染属性:
XYPlot plot = (XYPlot) chart.getPlot();
XYItemRenderer r = plot.getRenderer();
r.setSeriesStroke(0, new BasicStroke(
16f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));