package chart;
import java.awt.*;
import javax.swing.*;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.*;
public class MyBarChart extends JFrame {
public MyBarChart() {
super("MyBarChart");
CategoryDataset dataset = createDataset();
JFreeChart chart = createChart(dataset);
chart = customizeChart(chart);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new Dimension(1000, 540));
getContentPane().add(chartPanel);
pack();
setLocationRelativeTo(null);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new MyBarChart();
}
private CategoryDataset createDataset() {
// Zeilen (X-Achse) ...
String series1 = "Umsatz Abt. A";
String series2 = "Umsatz Abt. B";
String series3 = "Umsatz Abt. C";
// Spalten (X-Achse) ...
String category1 = "Typ 1";
String category2 = "Typ 2";
String category3 = "Typ 3";
String category4 = "Typ 4";
String category5 = "Typ 5";
// Erzeuge Datensätze...
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1.5, series1, category1);
dataset.addValue(4.2, series1, category2);
dataset.addValue(3.0, series1, category3);
dataset.addValue(5.0, series1, category4);
dataset.addValue(5.0, series1, category5);
dataset.addValue(5.5, series2, category1);
dataset.addValue(7.8, series2, category2);
dataset.addValue(6.0, series2, category3);
dataset.addValue(8.0, series2, category4);
dataset.addValue(4.0, series2, category5);
dataset.addValue(4.0, series3, category1);
dataset.addValue(3.0, series3, category2);
dataset.addValue(2.0, series3, category3);
dataset.addValue(3.0, series3, category4);
dataset.addValue(6.0, series3, category5);
return dataset;
}
private JFreeChart createChart(final CategoryDataset dataset) {
JFreeChart chart = ChartFactory.createBarChart("Demo Bar Chart", // Titel Diagramm
"Kategorie", // Label Achse Diagrammbeschriftung label
"Wert", // Bereich Achse Label
dataset, // Daten
PlotOrientation.VERTICAL, // orientation
true, // Legende vorhanden?
true, // Tooltips?
false // URLs?
);
return chart;
}
private JFreeChart customizeChart(final JFreeChart chart) {
return chart;
}
}