Frage

Ich habe gestapeltes Balkendiagramm, in dem die Anzahl der Spalten ist dynamisch, kann von 1 bis n Spalten ändern. Ich mag der Abstand zwischen den Diagrammen und Breite des Stabes in Einklang steht. Wie kann ich es beheben. Bitte legen nahe, Lösungen / Ideen.

War es hilfreich?

Lösung

StackedBarRenderer widmet einige Mühe das zu machen „Abstand zwischen dem [bar] und der Breite der Bar im Einklang zu sein.“ Es ist nicht klar, was Sie es anders als die Anzahl der Spalten Änderungen machen wollen. Die relevante Geometrie wird von der Mutter bestimmt BarRenderer in solchen Verfahren wie calculateBarWidth(), die wie gewünscht sein kann überschrieben. Überprüfen Sie auch, dass es einen Wert für jede Kategorie in jeder Reihe ist.

Andere Tipps

In einem gestapeltes Balkendiagramm können Sie den Abstand zwischen den Stäben ändern mit

  • CategoryAxis.setLowerMargin
  • CategoryAxis.setMargin und
  • CategoryAxis.setUpperMargin

-Code ist unter

protected JFreeChart generateGraph() {

  CategoryAxis categoryAxis = new CategoryAxis("Categories");
  categoryAxis.setLowerMargin(.01);
  categoryAxis.setCategoryMargin(.01);
  categoryAxis.setUpperMargin(.01);      
  categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_90);

  ValueAxis valueAxis = new NumberAxis("Values");

  StackedBarRenderer renderer = new StackedBarRenderer();
  renderer.setBarPainter(new StandardBarPainter());
  renderer.setDrawBarOutline(false);
  renderer.setShadowVisible(false);
  renderer.setBaseItemLabelsVisible(true);
  renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());

  CategoryPlot plot = new CategoryPlot( _dataset,
                                        categoryAxis,
                                        valueAxis,
                                        renderer);

  plot.setOrientation(PlotOrientation.VERTICAL);

  JFreeChart chart = new JFreeChart( "Title",
                          JFreeChart.DEFAULT_TITLE_FONT,
                          plot,
                          true);
  //ChartFactory.getChartTheme().apply(_chart);
  return chart;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top