2015-07-02 3 views
1

Я использую Jfreechart для создания диаграммы с разбивкой по областям. Я использую класс StackedXYAreaChart.Jfreechart - можем ли мы установить форму для datapoint в StackedAreaChart?

Я хотел знать, можем ли мы рисовать фигуры в точках данных для 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

'StackedXYAreaRenderer # setSeriesShape()' работает для меня; отредактируйте свой вопрос, включив в него [полный пример] (http://stackoverflow.com/help/mcve), в котором представлена ​​проблема, которую вы описываете. – trashgod

+0

@trashgod - область области заменяется линией, которая покрывает диаграмму области. Я все равно понял свой ответ. Решение: StackedXYAreaRenderer renderer = новый StackedXYAreaRenderer (StackedXYAreaRenderer.AREA_AND_SHAPES); – chrisrhyno2003

ответ

2

Вы должны установить тип StackedXYAreaRenderer - «формы и линии». Этот рендерер не показывает формы по умолчанию.

StackedXYAreaRenderer renderer = new StackedXYAreaRenderer(StackedXYAreaRenderer.SHAPES_AND_LINES); 
1

Фигурные решение из: Используйте заявление

StackedXYAreaRenderer renderChart = new StackedXYAreaRenderer(StackedXYAreaRenderer.AREA_AND_SHAPES); 

Затем использовать,

renderChart.setSeriesShape(index, Shape); 
+0

См. Также [Q & A] (http://stackoverflow.com/q/31166588/230513). – trashgod

Смежные вопросы