我创建了折线图:
但是我想让它看起来像这样。我也不知道这是什么样的图表。 我想在其中制作阴影和圆圈节点。就像这样:
我该怎么做?顺便说一下,如果它与我的问题相关,我将在网页中以PNG
图像格式显示图表。提前谢谢。
答案 0 :(得分:5)
有关信息,您尝试复制的示例图表包含在JFreeChart演示集合中。演示的完整源代码包含在JFreeChart开发人员指南中。你可以通过要求他们购买JFreeChart开发者指南来节省一些时间和公司一些钱,但这并不是那么昂贵。回答......
通过设置阴影生成器,可以将您要查找的阴影效果添加到任何CategoryPlot或XYPlot:
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));