Search code examples
javachartsjfreechart

Display values in JFreeChart spider chart


The spider web plot of JFreeChart does not display values close to the marked points, as default:

SpiderWebPlot example

what must be done to display the numbers?

That's what I have now, in a method returning StreamedContent (for PrimeFaces' p:graphicImage:

CategoryDataset categorydataset = createCategoryDataset(displayBy, configuration, null);
SpiderWebPlot plot = new SpiderWebPlot(categorydataset);
plot.setInteriorGap(0.40);
plot.setNoDataMessage("No data available");
plot.setStartAngle(0);
plot.setLabelGenerator(new StandardCategoryItemLabelGenerator("{2}", NumberFormat.getInstance()));
plot.setWebFilled(true);

JFreeChart chart = new JFreeChart(title, TextTitle.DEFAULT_FONT, plot, true);

File chartFile = new File(String.valueOf(new Random().nextLong()));
ChartUtilities.saveChartAsPNG(chartFile, chart, 375, 300);
return new DefaultStreamedContent(new FileInputStream(chartFile), "image/png");

EDIT: After @trashgod's suggestion, some values appeared but no in the expected place. I want the columnKey values, not the `rowKey' values (addValue method in DefaultCategoryDataset class):

dataset.getColumnKey(col) + " TESTE " + dataset.getValue(0, col)


Solution

  • What must be done to display the numbers?

    You can label points on the plot using a CategoryItemLabelGenerator, as shown here.

    What matters are the three other [points].

    It looks like you might be able to add a second series, one with a second rowKey, in order to get labels associated with those points.