# JFreeChart - aktuelle code beispiele



## DaveIT (26. Jun 2012)

Hallo!

Ich programmiere gerade ein kleines tool mit dem ich arbeitsaufzeichnungen machen kann und wollte ein paar einfache diagramme ausgeben. nach meinem lieblingsmotto "googel ist dein freund" bin ich dann auf *JFreeChart* gestoßen. leider hat mich das eher gebremst als weiter gebracht.

*was ich getan habe:*

-> JFreeChart runtergeladen und in mein Netbeans eingebunden (über den Libary Manager)
-> Die Javadocs runtergeladen und ebenfalls eingebunden
-> Nach beispielen gegoogelt an denen ich mich orientieren kann

ich hab im netz aller hand beispiele gefunden, doch ich konnte kein einziges ausprobieren. es schwirrt sehr viel code herum der mit den neuen versionen nicht kompatibel ist. zur zeit bin ich total verwirrt.
funktionierenden code den ich angefunden hab:


```
y_of_x = new double[n_points];
        x = new double[n_points];
        
        XYSeries series = new XYSeries("Cos(x) versus x");
        for (int i = 0;i< n_points;i++){//calculate the data to be plotted
            y_of_x[i] = Math.cos(i*Math.PI/180);
            series.add((double)i,y_of_x[i]) ;//add the computed values to the series
        }
            
        XYDataset dataset = (XYDataset)new XYSeriesCollection(series);
        JFreeChart chart = ChartFactory.createXYLineChart(
            "Cos(x) versus x",
            "x",
            "cos(x)",
            dataset,
            org.jfree.chart.plot.PlotOrientation.VERTICAL,
            true,
            false,
            false);
        BufferedImage image = chart.createBufferedImage(400,500);
        jLabel1.setIcon(new ImageIcon(image));
        this.setSize(500, 600);
```

aber ich hab keine ahnung wie ich ohne das image die chart auf ein Panel bringen kann. (habs mit ChartPanel versucht aber da kommt auch eine fehlermeldung)

*was ich bräuchte:*

-> hat jemand aktuelle code beispiele für JFreeChart
-> gibt es alternativen oder sollte man einfach den guide kaufen?

Würde mich über antworten freuen, ich stecke momentan echt fest und das nimmt mir den ganzen schwung.

danke für jede antwort,

mit freundlichen grüßen daveIT


----------



## Final_Striker (26. Jun 2012)

Ich fand die Seite immer sehr hilfreich was JFreeChart angeht.
ChartJava


----------



## homer65 (27. Jun 2012)

Außerdem kann man gegen geringes Entgelt das Handbuch kaufen. Habe das auch gemacht.
Damit unterstützt man das Projekt.


----------



## homer65 (27. Jun 2012)

Als Anregung habe ich mal ein Beispiel aus einem Servlet kopiert.
[Java]
		OutputStream out = response.getOutputStream();
		XYSeries xy = new XYSeries("");
		for (int i=0;i<al.size();i++)
		{
			SatzSMF100 satz = al.get(i);
			int tag = satz.getTag();
			int gb = satz.getGetBuffer();
			xy.add(tag,gb);
		}
		XYSeriesCollection dataset = new XYSeriesCollection();
		dataset.addSeries(xy);
		if (ansicht == null) ansicht = "";
		if (ansicht.equals("a2"))
		{
		JFreeChart chart = ChartFactory.createXYBarChart(
				"GetBuffer Chart",
				"Tag",
				true,
				"GetBuffer in tausend",
				dataset,
				PlotOrientation.VERTICAL,
				true,
				true,
				false
				);	
		ChartUtilities.writeChartAsPNG(out,chart,500,375);
		}
[/Java]


----------



## Guybrush Threepwood (27. Jun 2012)

Das Handbuch kommt zusammen mit allen Code-Beispielen. Ich kann Dir das empfehlen. Ich habe es auch gekauft. Es hat mir sehr viel geholfen.


----------



## DaveIT (27. Jun 2012)

Danke für die wirklich raschen antworten 

Anscheinend ist das handbuch eine vernünftige alternative, 67.20€ sind aber doch nicht wenig dafür das ich nur herumprobiere. 

Kennt jemand vielleicht alternativen die weniger mächtig sind, aber freier zugänglich?

Danke nochmals,

mit freundlichen grüßen daveIT


----------



## homer65 (27. Jun 2012)

DaveIT hat gesagt.:


> Anscheinend ist das handbuch eine vernünftige alternative, 67.20€ sind aber doch nicht wenig dafür das ich nur herumprobiere.



Ups, da sind die Preise ab kräftig erhöht worden.


----------



## Guybrush Threepwood (27. Jun 2012)

Für welchen Chart suchst Du ein Beispiel?


----------



## Refti (27. Jun 2012)

Einfach die Demo-Jar starten (jfreechart-1.0.14-demo.jar) und dir aus der Anwendung ein passendes Beispiel raussuchen, z.B. BarChartDemo1.java, PieChartDemo4.java, ... und dann genau nach diesem Namen googlen. Zu 98% der Beispiele findet man direkt den Quelltext.


----------



## DaveIT (27. Jun 2012)

Wenn ich jetzt die PieChartDemo4.java als beispiel rausnehme finde ich nur einen code der mit den libs anscheinend überhaup nicht zusammenpasst. Meistens kommt die fehlermeldung "no suitable method found".

Besonders fällt mir auf das ich ein ChartPanel nicht bei einem normalen JPanel über "add" hinzufügen kann. Dabei erbt ChartPanel direkt von JPanel? ???:L

und bei diesem beispiel:


```
DefaultPieDataset pieDataset = new DefaultPieDataset();
            pieDataset.setValue("One", new Integer(10));
            pieDataset.setValue("Two", new Integer(20));
            pieDataset.setValue("Three", new Integer(30));
        PieDataset set = (PieDataset) pieDataset;
        JFreeChart chart = ChartFactory.createPieChart("Pie Chart using JFreeChart", set, true,true,true);
```

kannn ich die chart über "createPieChart" nur erzeugen wenn ich das set vorher zu einem anderen objekt caste.




homer65 hat gesagt.:


> Ups, da sind die Preise ab kräftig erhöht worden.



jup, muss ich mir echt überlegen...


----------



## homer65 (27. Jun 2012)

Für PieChart und Swing habe ich auch ein Beispiel:
[Java]
package pack;
import java.util.*;
import javax.swing.*;
import java.awt.*;
import org.jfree.data.general.*;
import org.jfree.chart.*;
public class StatistikTypenMenu extends Menu
{
	public static final long serialVersionUID = 0;
	private JPanel cpan = new JPanel();
	private JPanel fpan = new JPanel();
	private StatistikTypenModel GM = new StatistikTypenModel();
	public StatistikTypenMenu()
	{
		buildfpan();
		cpan.setLayout(new BorderLayout());
		JTable tab = new JTable(GM);
		ColumnResizer.resize(tab);
		tab.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		JScrollPane sp = new JScrollPane(tab);
		cpan.add(sp,BorderLayout.CENTER);
		cpan.add(fpan,BorderLayout.SOUTH);
		setContentPane(cpan);
	}
	public void buildfpan()
	{
		ArrayList<TypenSatz> al = GM.al;
		DefaultPieDataset dpd = new DefaultPieDataset();
		for (int i=0;i<al.size();i++)
		{
			TypenSatz ts = al.get(i);
			dpd.setValue(ts.getTyp(),ts.getGesamt());
		}
		JFreeChart chart = ChartFactory.createPieChart(
				""
				,dpd
				,true
				,true
				,false
		);
		ChartFrame frame = new ChartFrame("",chart);
		fpan.add(frame.getContentPane());
	}
}

[/Java]


----------



## DaveIT (9. Jul 2012)

So!

Ein paar pc freie tage und ein klarer kopf helfen.

*Mein fehler:* Anstatt nur die dateien "jcommonxxx.jar" und "jfreechartxxx.jar" als libs einzubinden hab ich alle dateien des ordners ausgewählt. 

Hab die dateien entfernt und die richtigen eingebunden und schon hat alles geklappt *auf kopf hau*

Mit den geposteten links und beispielen hat dann der rest auch ganz gut geklappt.

Danke sehr!


----------

