我正在使用Jfreechart制作堆积区域图表。我正在使用StackedXYAreaChart类。
我想知道我们是否可以在StackedAreaChart的数据点绘制形状(我们可以通过设置SetSeriesShapes()来表示每个数据点的折线图)。
方法setSeriesShape()似乎不起作用。有人有任何想法吗?
这是我迄今为止所尝试的内容(请不要评论我有一个空的数据集。我正在绘制一个动态图表,系列将在稍后填写):
incomingData = new TimeTableXYDataset();
final JFreeChart incomingDataChart = ChartFactory.createStackedXYAreaChart(
"Chart", "Time", "Payload (In Bytes)", incomingData, PlotOrientation.VERTICAL, true, true, false);
final StackedXYAreaRenderer renderChart = new StackedXYAreaRenderer();
renderChart.setSeriesPaint(0, Color.decode("#339900"));
renderChart.setSeriesPaint(1, Color.decode("#CC9933"));
renderChart.setSeriesPaint(2, Color.decode("#33CCFF"));
renderChart.setSeriesPaint(3, Color.decode("#FF6600"));
renderChart.setSeriesShape(0, new Ellipse2D.Double(-3, -3, 10, 10));
renderChart.setSeriesShape(1, new Ellipse2D.Double(-3, -3, 10, 10));
renderChart.setSeriesShape(2, new Ellipse2D.Double(-3, -3, 10, 10));
renderChart.setSeriesShape(3, new Ellipse2D.Double(-3, -3, 10, 10));
incomingDatachart.getPlot().setRenderer(renderChart);
答案 0 :(得分:2)
您需要将StackedXYAreaRenderer的类型设置为“形状和线条”。该渲染器默认不显示形状。
StackedXYAreaRenderer renderer = new StackedXYAreaRenderer(StackedXYAreaRenderer.SHAPES_AND_LINES);
答案 1 :(得分:1)
找出解决方案:使用Statement
StackedXYAreaRenderer renderChart = new StackedXYAreaRenderer(StackedXYAreaRenderer.AREA_AND_SHAPES);
然后使用,
renderChart.setSeriesShape(index, Shape);