cl0udt
Lt. Junior Grade
- Registriert
- Sep. 2008
- Beiträge
- 508
Hallo zusammen,
ich versuche mit dem Framework "JFreeChart" ein stackedBarDiagramm zu erstellen, welches nicht bei 0 beginnt.
Habe ich auch zum Teil hinbekommen (siehe Code). Die Bars die eigentlich aufeinander gestapelt ("gestacked") werden sollen, werden bei mir noch nebeneinander angezeigt. Irgendwie muss es funktionieren, da der der Standard-Renderer sie stacked (dann starten aber alle Bars wieder bei 0...). Hat vielleicht jemand eine Idee? Mir ist auch ein neuer Ansatz recht. Ich brauche stackedBars, die nicht bei 0 anfangen und die Möglichkeit des Exports vom Diagramm als .jpg oder ähnlichem..
Danke schonmal!
ich versuche mit dem Framework "JFreeChart" ein stackedBarDiagramm zu erstellen, welches nicht bei 0 beginnt.
Habe ich auch zum Teil hinbekommen (siehe Code). Die Bars die eigentlich aufeinander gestapelt ("gestacked") werden sollen, werden bei mir noch nebeneinander angezeigt. Irgendwie muss es funktionieren, da der der Standard-Renderer sie stacked (dann starten aber alle Bars wieder bei 0...). Hat vielleicht jemand eine Idee? Mir ist auch ein neuer Ansatz recht. Ich brauche stackedBars, die nicht bei 0 anfangen und die Möglichkeit des Exports vom Diagramm als .jpg oder ähnlichem..
Danke schonmal!
Code:
package Main;
import java.awt.Dimension;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.IntervalBarRenderer;
import org.jfree.data.category.DefaultIntervalCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class BarChart extends ApplicationFrame {
public BarChart(String title) {
super(title);
DefaultIntervalCategoryDataset dataset = new
DefaultIntervalCategoryDataset(new Double[][]{{2.0, 1.0, 3.0}, {3.0, 2.0, 3.5}},
new Double[][]{{3.0, 2.0, 3.5}, {6.0, 8.0, 5.0}});
dataset.setCategoryKeys(new Comparable[]{"Eins", "Zwei", "Drei"});
JFreeChart chart = ChartFactory.createStackedBarChart("Diagramm",
"Bla", "Blubb",
dataset, PlotOrientation.HORIZONTAL, false, false, false);
IntervalBarRenderer renderer = new IntervalBarRenderer();
((CategoryPlot)chart.getPlot()).setRenderer(renderer);
ChartPanel chartPanel = new ChartPanel(chart, false);
chartPanel.setPreferredSize(new Dimension(500, 270));
setContentPane(chartPanel);
}
public static void main(String[] args) {
BarChart demo = new BarChart("Bar Demo 1");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}
