import java.awt.Dimension;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.NumberAxis3D;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.DatasetRenderingOrder;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.renderer.category.CategoryItemRenderer;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.chart.renderer.category.StandardBarPainter;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class LineBarOverlaid extends ApplicationFrame {
/**
* Serial version UID
*/
private static final long serialVersionUID = 1L;
public LineBarOverlaid(final String title) {
super(title);
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(90, "Rückmeldungen", "Di, 2009-07-21");
dataset.addValue(75, "Rückmeldungen", "Mi, 2009-07-22");
dataset.addValue(74, "Rückmeldungen", "Do, 2009-07-23");
dataset.addValue(0, "Rückmeldungen", "Fr, 2009-07-24");
dataset.addValue(0, "Rückmeldungen", "Sa, 2009-07-25");
dataset.addValue(0, "Rückmeldungen", "So, 2009-07-26");
dataset.addValue(3, "Rückmeldungen", "Mo, 2009-07-27");
dataset.addValue(5, "Rückmeldungen", "Di, 2009-07-28");
dataset.addValue(0, "Rückmeldungen", "Mi, 2009-07-29");
dataset.addValue(0, "Rückmeldungen", "Do, 2009-07-30");
dataset.addValue(0, "Rückmeldungen", "Fr, 2009-07-31");
dataset.addValue(0, "Rückmeldungen", "Sa, 2009-08-01");
dataset.addValue(0, "Rückmeldungen", "So, 2009-08-02");
dataset.addValue(0, "Rückmeldungen", "Mo, 2009-08-03");
dataset.addValue(0, "Rückmeldungen", "Di, 2009-08-04");
dataset.addValue(0, "Rückmeldungen", "Mi, 2009-08-05");
dataset.addValue(0, "Rückmeldungen", "Do, 2009-08-06");
dataset.addValue(0, "Rückmeldungen", "Fr, 2009-08-07");
dataset.addValue(0, "Rückmeldungen", "Sa, 2009-08-08");
dataset.addValue(0, "Rückmeldungen", "So, 2009-08-09");
dataset.addValue(38, "Rückmeldungen", "Mo, 2009-08-10");
final BarRenderer renderer = new BarRenderer();
renderer.setItemLabelsVisible(true);
final CategoryPlot plot = new CategoryPlot();
plot.setDataset(dataset);
plot.setRenderer(renderer);
renderer.setBarPainter(new StandardBarPainter());
renderer.setShadowVisible(true);
renderer.setMaximumBarWidth(0.9);
plot.setDomainAxis(new CategoryAxis("Datum"));
plot.setRangeAxis(new NumberAxis("Stunden"));
plot.setOrientation(PlotOrientation.VERTICAL);
plot.setRangeGridlinesVisible(false);
plot.setDomainGridlinesVisible(false);
DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
dataset2.addValue(28, "Durchschnitt", "Di, 2009-07-21");
dataset2.addValue(28, "Durchschnitt", "Mi, 2009-07-22");
dataset2.addValue(28, "Durchschnitt", "Do, 2009-07-23");
dataset2.addValue(28, "Durchschnitt", "Fr, 2009-07-24");
dataset2.addValue(28, "Durchschnitt", "Sa, 2009-07-25");
dataset2.addValue(28, "Durchschnitt", "So, 2009-07-26");
dataset2.addValue(28, "Durchschnitt", "Mo, 2009-07-27");
dataset2.addValue(28, "Durchschnitt", "Di, 2009-07-28");
dataset2.addValue(28, "Durchschnitt", "Mi, 2009-07-29");
dataset2.addValue(28, "Durchschnitt", "Do, 2009-07-30");
dataset2.addValue(28, "Durchschnitt", "Fr, 2009-07-31");
dataset2.addValue(28, "Durchschnitt", "Sa, 2009-08-01");
dataset2.addValue(28, "Durchschnitt", "So, 2009-08-02");
dataset2.addValue(28, "Durchschnitt", "Mo, 2009-08-03");
dataset2.addValue(28, "Durchschnitt", "Di, 2009-08-04");
dataset2.addValue(28, "Durchschnitt", "Mi, 2009-08-05");
dataset2.addValue(28, "Durchschnitt", "Do, 2009-08-06");
dataset2.addValue(28, "Durchschnitt", "Fr, 2009-08-07");
dataset2.addValue(28, "Durchschnitt", "Sa, 2009-08-08");
dataset2.addValue(28, "Durchschnitt", "So, 2009-08-09");
dataset2.addValue(28, "Durchschnitt", "Mo, 2009-08-10");
DefaultCategoryDataset dataset3 = new DefaultCategoryDataset();
dataset3.addValue(60, "Plankapazität", "Di, 2009-07-21");
dataset3.addValue(60, "Plankapazität", "Mi, 2009-07-22");
dataset3.addValue(60, "Plankapazität", "Do, 2009-07-23");
dataset3.addValue(60, "Plankapazität", "Fr, 2009-07-24");
dataset3.addValue(0, "Plankapazität", "Sa, 2009-07-25");
dataset3.addValue(0, "Plankapazität", "So, 2009-07-26");
dataset3.addValue(60, "Plankapazität", "Mo, 2009-07-27");
dataset3.addValue(60, "Plankapazität", "Di, 2009-07-28");
dataset3.addValue(60, "Plankapazität", "Mi, 2009-07-29");
dataset3.addValue(60, "Plankapazität", "Do, 2009-07-30");
dataset3.addValue(60, "Plankapazität", "Fr, 2009-07-31");
dataset3.addValue(0, "Plankapazität", "Sa, 2009-08-01");
dataset3.addValue(0, "Plankapazität", "So, 2009-08-02");
dataset3.addValue(60, "Plankapazität", "Mo, 2009-08-03");
dataset3.addValue(60, "Plankapazität", "Di, 2009-08-04");
dataset3.addValue(60, "Plankapazität", "Mi, 2009-08-05");
dataset3.addValue(60, "Plankapazität", "Do, 2009-08-06");
dataset3.addValue(60, "Plankapazität", "Fr, 2009-08-07");
dataset3.addValue(0, "Plankapazität", "Sa, 2009-08-08");
dataset3.addValue(0, "Plankapazität", "So, 2009-08-09");
dataset3.addValue(60, "Plankapazität", "Mo, 2009-08-10");
final CategoryItemRenderer renderer2 = new LineAndShapeRenderer();
plot.setDataset(1, dataset2);
plot.setRenderer(1, renderer2);
plot.setDataset(2, dataset3);
final CategoryItemRenderer renderer3 = new LineAndShapeRenderer();
plot.setRenderer(2, renderer3);
plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
plot.getDomainAxis().setCategoryLabelPositions(CategoryLabelPositions.UP_90);
plot.getRangeAxis().setRange(0, 100); // legt Größe der Y-Achse fest (min, max)
final JFreeChart chart = new JFreeChart(plot);
chart.setTitle("Rückmeldungen für Arbeitsplatz 330301 FLACHSCHL.MITTEL");
final ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new Dimension(1000, 450));
setContentPane(chartPanel);
chartPanel.setRangeZoomable(false);
}
public static void main(String args[]) {
final LineBarOverlaid overlaid = new LineBarOverlaid("Line- and Barchart overlaid");
overlaid.pack();
RefineryUtilities.centerFrameOnScreen(overlaid);
overlaid.setVisible(true);
}
}