Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Java > Allgemeine Java-Programmierung > jFreechart - Eigenes Beispiel
Antwort
 
Themen-Optionen
Alt 24.02.2005, 11:05   Nach oben    #1
Neuer Benutzer
 
Registriert seit: 24.02.2005
Beiträge: 29
Standard jFreechart - Eigenes Beispiel

Erstmal Hallo, ich bin neu in dem Forum und beschäftige mich erst seit kurzem mit Java. Ich hatte schon einigen Kontakt mit anderen Sprachen, wurde aber jetzt "gezwungen" Projekte in Java zu schreiben. Meine Entwicklungsumgebung ist Eclipse (wie wohl bei den meisten )

Doch nun zu meiner Frage bezüglich der Komponente JFreeChart:
Ich möchte mir ein einfaches xy Diagramm zeichnen. Ich habe schon mehtfach herumpropiert. Dabei habe ich aber max die Demo zum laufen gebracht...

Hat irgendjemand Erfahrung der mal einen Codeschnipsel posten könnte?
(Wenn es geht richtig einfach für den Anfänger)
Vielen Dank im Voraus...
Northstar ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2005, 11:08   Nach oben    #2
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard

Hallo,
willkommen im Forum

Ich weiß leider nicht, was wir Dir anderes als eine weitere Demo geben können ..

Eventuell hilft Dir hier der Schnipsel weiter?
--> http://tools.devchannel.org/devtools.../1634222.shtml

Ist so eine Art Mini-Tutorial.

Grüße Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2005, 11:28   Nach oben    #3
Neuer Benutzer
 
Registriert seit: 24.02.2005
Beiträge: 29
Standard

Vielen Dank Ben das ist ein guter Link ich hab das gleich getestet. Ich hab dabei nur das Problem (nach einfügen des Code) das ich vom Jfreechart einen Fehler bekomme. Ich als blutigster Anfänger kann das natürlich nicht nachvollziehn....

Aber vielen Dank für die Superschnelle Antwort! Ich werde heute mal weiter damit rumprobieren und das Ergebniss posten, wenn es klappt.
Northstar ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2005, 11:35   Nach oben    #4
Erfahrener Benutzer
 
Benutzerbild von Gottzilla
 
Registriert seit: 02.02.2005
Beiträge: 515
Standard

Was bekommst du denn für einen Fehler?
Gottzilla ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2005, 11:51   Nach oben    #5
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard

Hallo,
ich habe hier noch ein sehr gutes PDF gefunden. Das kann ich Dir heute Abend mal zukommen lassen .. bzw. ich lade es einfach hoch

Grüße Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2005, 18:41   Nach oben    #6
Neuer Benutzer
 
Registriert seit: 24.02.2005
Beiträge: 29
Standard

Ja das ist schön. Wo ist das PDF?

Also wegen dem Fehler ich muss Eclipse noch auf einem anderen Rechner installieren da ich den REchner wechseln musste. Ich werde den Fehler posten...
Northstar ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2005, 18:51   Nach oben    #7
StringBuffer
Gast
 
Beiträge: n/a
Standard

hier mal ein beispiel von mir:

Code:
  public Vector createXYAreaChart(HashMap _sendings, Vector _orders)
  {
    final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.GERMANY);

    final TimeSeries series1 = new TimeSeries("Anrufe", Day.class);

    for (int i = 0; i < calls.size(); i++)
    {
      try
      {
      	int wert = i;
        String date_1 = "2005-01-01"
        int year_1 = new Integer(date_1.substring(0, 4)).intValue();
        int month_1 = new Integer(date_1.substring(5, 7)).intValue();
        int day_1 = new Integer(date_1.substring(8, 10)).intValue();
        series1.add(new Day(day_1, month_1, year_1), new Integer(wert));
      }
      catch (Exception e)
      {
        e.printStackTrace();
      }
    } //for

    TimeSeriesCollection dataset_calls = new TimeSeriesCollection();
    dataset_all.addSeries(series1);

    dataset_all.setDomainIsPointsInTime(true);

    final JFreeChart chart_all = createTimeChart(dataset_all);

    Vector charts = new Vector(1);

    try
    {
      GregorianCalendar timestamp = new GregorianCalendar(TimeZone.getTimeZone("ECT"));
      String filename = "area_" + timestamp.getTimeInMillis();

      ChartUtilities.saveChartAsPNG(new File("C:\\" + filename + "_all.png"), chart_all, 400, 300);

      charts.add("/resources/" + filename + "_all.png");

      return charts;

    }
    catch (java.io.IOException exc)
    {
      System.err.println("Error writing image to file");
      return null;
    }
  }


  private JFreeChart createTimeChart(final XYDataset dataset)
  {

    final JFreeChart chart = ChartFactory.createTimeSeriesChart(
        "",
        "Datum", "Anrufe",
        dataset,
        true,
        true,
        false
        );

    chart.setBackgroundPaint(Color.white);

    final StandardLegend sl = (StandardLegend) chart.getLegend();
    sl.setDisplaySeriesShapes(true);

    final XYPlot plot = chart.getXYPlot();
    plot.setBackgroundPaint(Color.lightGray);
    plot.setDomainGridlinePaint(Color.white);
    plot.setRangeGridlinePaint(Color.white);
    plot.setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5.0, 5.0, 5.0, 5.0));
    plot.setDomainCrosshairVisible(true);
    plot.setRangeCrosshairVisible(true);

    final XYItemRenderer renderer = plot.getRenderer();
    if (renderer instanceof StandardXYItemRenderer)
    {
      final StandardXYItemRenderer rr = (StandardXYItemRenderer) renderer;
      rr.setPlotShapes(false);
      rr.setShapesFilled(false);
      rr.setItemLabelsVisible(true);
    }

    final DateAxis axis = (DateAxis) plot.getDomainAxis();
    axis.setDateFormatOverride(new SimpleDateFormat("dd-MM-yyyy"));
    return chart;

  }
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2005, 19:09   Nach oben    #8
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard

Die PDF-Datei gibt es per eMail.


[EDIT]
Die PDF-Datei ist mir leider abhanden gekommen.

Geändert von Ben (10.01.2007 um 11:49 Uhr).
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2005, 21:56   Nach oben    #9
Neuer Benutzer
 
Registriert seit: 24.02.2005
Beiträge: 29
Standard

Code:
/*
 * Created on 24.02.2005
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package MeinPacket;

import java.util.Random;

import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.chart.*;
/**
 * @author 
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class DiagrammDraw {

	public static void main(String[] args) {
		int Zahl=0;
		int jahr=1999;
		Random rand=new Random(); //Zufallswerte mit Random aus Util
		XYSeries punkte = new XYSeries("Umsatz");
		
		for (int i = 0;i<=10;i++){
			Zahl=rand.nextInt(100);
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			punkte.add(jahr++,Zahl);
			System.out.println(Zahl);
		}
		
		XYDataset datenreihe = new XYSeriesCollection (punkte);
		JFreeChart chart = ChartFactory.createXYAreaChart("Jahre","Umsätze","Millionen",datenreihe,
		        org.jfree.chart.plot.PlotOrientation.VERTICAL,true,false,false);
		
		try {
			  ChartUtilities.saveChartAsJPEG(new java.io.File("TheFuture.jpg"), chart, 500, 300);
			} catch (java.io.IOException exc) {
				System.err.println("Error writing image to file");
			}
	}
}
und hier die Fehler Meldung...

java.lang.NoClassDefFoundError: org/jfree/util/PublicCloneable
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknow n Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at org.jfree.data.xy.XYSeriesCollection.<init>(XYSeri esCollection.java:85)
at MeinPacket.DiagrammDraw.main(DiagrammDraw.java:41)
Exception in thread "main"


Ich weiss es nicht... das Ist 90% an Ben´s Link orientiert...Habt ihr ne Idee?
Northstar ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2005, 22:54   Nach oben    #10
Neuer Benutzer
 
Registriert seit: 24.02.2005
Beiträge: 29
Standard

Hmm hab jetzt mal die Jfreedemo als Biblothek mit rein und es geht...??? Wie war das bei euch?
Northstar ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2005, 23:22   Nach oben    #11
Neuer Benutzer
 
Registriert seit: 24.02.2005
Beiträge: 29
Standard

Ok verzeit mir, wenn ich so dämlich frage... kann ich statt als File speichern irgendwie "live" am Bildschirm zeichnen ? Läuft das mit .plot?
Northstar ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2005, 23:56   Nach oben    #12
StringBuffer
Gast
 
Beiträge: n/a
Standard

Also bei den ganzen Tutorials musst du drauf achten, welche Version genutzt wird - die Klassen und Methoden sind bei jfree recht kurzlebig

Sollte gehen - schau Dir mal die API an...
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.02.2005, 00:31   Nach oben    #13
Neuer Benutzer
 
Registriert seit: 24.02.2005
Beiträge: 29
Standard

Ähmm eine noch wichtigere Frage wie kriegt man ne 2. Datenreihe rein?
Northstar ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.02.2005, 00:33   Nach oben    #14
Neuer Benutzer
 
Registriert seit: 24.02.2005
Beiträge: 29
Standard

Zitat:
Zitat von StringBuffer
Also bei den ganzen Tutorials musst du drauf achten, welche Version genutzt wird - die Klassen und Methoden sind bei jfree recht kurzlebig

Sollte gehen - schau Dir mal die API an...
Soweit habe ich das auch schon bemerkt ...
Northstar ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.02.2005, 08:14   Nach oben    #15
StringBuffer
Gast
 
Beiträge: n/a
Standard

Du erstellst eine weitere TimeSeriesCollection und fügst diese auch dem DataSet zu.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.02.2005, 11:02   Nach oben    #16
Neuer Benutzer
 
Registriert seit: 24.02.2005
Beiträge: 29
Standard

Jo Moin StringBuffer,
Das hab ich versucht aber irgendwie konnt ich nur eine mitgeben...
Ich teste gerade danke übrigens für den Code
Northstar ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.02.2005, 14:06   Nach oben    #17
StringBuffer
Gast
 
Beiträge: n/a
Standard

Code:
    dataset_all.addSeries(series1);
    dataset_all.addSeries(series2);
funktioniert nicht?!
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.02.2005, 16:27   Nach oben    #18
Neuer Benutzer
 
Registriert seit: 24.02.2005
Beiträge: 29
Standard

also ich hab jFree 0.9.21 da funtzt dat nicht so ich hab mal dein Bsp nachvollzogen da geht s nicht so liegt irgendwie an der Zeile:

" serie1.add(new Day(1,1,2003),33); " > wird irgenwie nicht richtig referenziert...
Northstar ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.02.2005, 16:31   Nach oben    #19
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.091
Standard

Ohne irgendwo nachgesehen zu haben:

Ersetze mal "Day" durch "Date".
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.02.2005, 13:02   Nach oben    #20
Neuer Benutzer
 
Registriert seit: 24.02.2005
Beiträge: 29
Standard

Ja danke das werde ich probieren klingt plausibel. Vielen Dank für Euere Inspiration. -gutes Forum-

Ich bleib an der Sache dran und werde erfolg (oder auch nicht) gleich melden!

Ich poste z.Z. so sporadisch weil ich leider daheim nur mit ISDN ins Netz komme und da ist alles soooo langsam.
Northstar ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[PHP] Ein eigenes Templatesystem schreiben Corvin Tutorials 42 19.03.2008 17:58
xss lücke am konkreten Beispiel DerMalle JavaScript und AJAX 5 28.02.2007 23:29
Beispiel OOP und VisualBasic mano Sonstige Programmiersprachen 5 31.10.2006 18:35
[PHP] PDF erstellen - ganz einfaches, schlichtes Beispiel Jann Hendrik Tutorials 4 24.11.2005 12:44
GESUCHT:simples beispiel zum thema resultset, tablemodel => in einer JTable ausgeben! bamboocha Desktop-Applikationen und Grafik 2 06.06.2005 21:34


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:51 Uhr.

Nach oben