【发布时间】:2013-12-03 18:32:57
【问题描述】:
我创建了一个折线图:
但我想让它看起来像这样。我也不知道这是什么图表。 我想让它也有一个阴影和圆形节点。就像这样:
我该怎么做?顺便说一句,如果与我的问题相关,我会在网页中将图表显示为PNG 图像格式。提前致谢。
【问题讨论】:
-
另见相关example。
标签: java charts jfreechart
我创建了一个折线图:
但我想让它看起来像这样。我也不知道这是什么图表。 我想让它也有一个阴影和圆形节点。就像这样:
我该怎么做?顺便说一句,如果与我的问题相关,我会在网页中将图表显示为PNG 图像格式。提前致谢。
【问题讨论】:
标签: java charts jfreechart
有关信息,您尝试复制的示例图表包含在 JFreeChart 演示集合中。演示的完整源代码包含在 JFreeChart 开发人员指南中。通过要求他们购买 JFreeChart 开发人员指南,您可以为自己和公司节省一些钱,它并不昂贵。关于答案...
您要寻找的阴影效果可以通过设置阴影生成器添加到任何CategoryPlot 或XYPlot:
plot.setShadowGenerator(new DefaultShadowGenerator());
它看起来不错,但请注意,它需要将图表呈现为位图,因此如果您将图表导出为 SVG 或 PDF 或其他矢量格式,它就不会播放得那么好。
可以通过更改您正在使用的渲染器上的属性来添加线条上的形状(在本例中为LineAndShapeRenderer)。
LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
renderer.setBaseShapesVisible(true);
setBaseShapesVisible() 方法为所有系列设置默认(或“基本”)标志值。如果您愿意,您可以在每个系列的基础上覆盖该默认值。您可能还想调整正在使用的颜色...默认情况下,所有形状都是使用系列颜色绘制和填充的,但是可以设置一些标志以使渲染器使用系列填充和系列轮廓颜色(即在示例中完成以在形状中填充白色)。
JFreeChart 渲染器非常可配置,因此我建议您花一些时间查看 API 文档以了解可能的情况。
【讨论】:
这是您的解决方案:
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));
【讨论】: