带有阴影和圆形节点的JFreeChart

时间:2013-11-19 23:39:25

标签: java charts jfreechart

我创建了折线图:

enter image description here

但是我想让它看起来像这样。我也不知道这是什么样的图表。 我想在其中制作阴影和圆圈节点。就像这样:

enter image description here

我该怎么做?顺便说一下,如果它与我的问题相关,我将在网页中以PNG图像格式显示图表。提前谢谢。

2 个答案:

答案 0 :(得分:5)

有关信息,您尝试复制的示例图表包含在JFreeChart演示集合中。演示的完整源代码包含在JFreeChart开发人员指南中。你可以通过要求他们购买JFreeChart开发者指南来节省一些时间和公司一些钱,但这并不是那么昂贵。回答......

通过设置阴影生成器,可以将您要查找的阴影效果添加到任何CategoryPlotXYPlot

plot.setShadowGenerator(new DefaultShadowGenerator());

它看起来不错,但请注意,它需要将图表渲染为位图,因此如果您将图表导出为SVG或PDF或其他矢量格式,它将无法很好地播放。

可以通过更改您正在使用的渲染器上的属性来添加线条上的形状(在这种情况下为LineAndShapeRenderer)。

LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
renderer.setBaseShapesVisible(true);

setBaseShapesVisible()方法为所有系列设置默认(或“base”)标志值。如果需要,您可以基于每个系列覆盖该默认值。您可能还想调整正在使用的颜色...默认情况下,使用系列颜色绘制和填充所有形状,但是可以设置标记以使渲染器使用系列填充和系列轮廓颜色(这是在示例中完成以获得形状中的白色填充。)

JFreeChart渲染器非常易于配置,因此我建议您花一些时间查看API文档以了解可能的内容。

答案 1 :(得分:1)

这是你的解决方案:

    LineAndShapeRenderer renderer
            = (LineAndShapeRenderer) plot.getRenderer();
    renderer.setBaseShapesVisible(true);
    renderer.setDrawOutlines(true);
    renderer.setUseFillPaint(true);
    renderer.setBaseFillPaint(Color.white);
    renderer.setSeriesStroke(0, new BasicStroke(3.0f));
    renderer.setSeriesOutlineStroke(0, new BasicStroke(2.0f));
    renderer.setSeriesShape(0, new Ellipse2D.Double(-5.0, -5.0, 10.0, 10.0));