# Graph mittels Punkte erstellen



## Guest (10. Apr 2008)

Hallo Leute,

bin nicht ganz in Java bewandert. Nu bräuchte ich Beispiele, wie ich einen Graph erstellen kann. Bisher habe ich das immer über Excel gemacht. Zwei spalten eine als x und die andere als y definiert und dann ein Punkte-Diagram welches dann verbunden wurde. Das brauch ich nun in Java. Diesmal liegen die Daten in der Datenbank. Ich kann sie auslesen und sie mir auch das resultset ausgeben, aber ich habe keine Ahnung, wie ich da zum Graphen kommen soll. Ich habe mir mal den Jgraph angeschaut, die Libraries heruntergalden, aber wusste wirklich keinen Fuss zu fassen :-( Habe auch nach tutorials gesucht, aber nichts gescheites finden können. BZW nichts, womit ich was anfangen konnte. Es ist ne ganz einfache Darstellung und es wäre prima, wenn es ein Diagramm gibt, wo man nur noch die x und y Were füllen bräuchte. 

Kann mir da vielleicht jemand weiterhelfen?? Wie gesagt, sowas, was es in Excel gibt nur in java. Kennt ihr da was? Oder Habt ihr etwas Erfahrung?

Danke und Gruss
Matze


----------



## tuxedo (10. Apr 2008)

Schau mal nach der Lib "JFreeChart". Damit solltest du recht schnell zu einen super Ergebnis kommen.

- Alex


----------



## SlaterB (10. Apr 2008)

ich kann dir JFreeChart empfehlen mit einer Seite mit vielen Beispielen:
http://www.java2s.com/Code/Java/Chart/CatalogChart.htm


----------



## Guest (10. Apr 2008)

Hab jetzt mal JFreeChart.jar heruntergeladen und mal die demo.jar ausgeführt. Da kann ich ein paar Diagramme sehen, halt demos.  Aber keinen Quellcode, denn ich irgenntwie anpassen könnte. !?!?

@slater sind das Beispiele auf der Seite?? Kann die Diagrammtypen gar nicht zuordnen, welcher wäre das denn in meinem Fall?? 

Gruss


----------



## SlaterB (10. Apr 2008)

du musst auch mal bisschen rumklicken, da gibts überall Bilder und Quellcode
(Tipp: die Kategorien mit vielen Beispielen (Zahl in Klammern) sind die häufigen/ typischen/ einfachen Charts)


----------



## Guest (10. Apr 2008)

sorry sorry, war etwas zu ungeduldig, hatte es kurz nach meinem post gesehn, sieht schon mal prima aus. Erst einmal Mercie. Melde mich bei bedarf zurück!


----------



## Guest (10. Apr 2008)

Hallo und wieder einmal ich :-( 

hab mal versucht eines dieser Diagramme selbst aufzurufen, aber nichts funzt :-( keine Ahnung, was ich falsch mache. habe mal die Klasse LineChartDemo1.java herausgenommen um sie zu kompilieren,dann ausführen, aber vergebens. Immer nur Fehlermeldungen. 

WIe gesagt bin nicht bewandert, kann mir da einer zur Seite stehen?? 

Gruss
Matze


----------



## Guest (10. Apr 2008)

Hallo 

hier habe ich was feines gefunden, aber kann es nicht anwenden, kann mir einer sagen, wie ich so eine Bean in meine Applikation einbinden und Daten übergeben kann?? 

D:\Prototyp\Graph\evallinechart\help.html

Wäre super lieb von euch 

gruss Matze


----------



## SlaterB (10. Apr 2008)

> D:\Prototyp\Graph\evallinechart\help.html 

auf dein Laufwerk D will keiner zugreifen 

>  Immer nur Fehlermeldungen. 

willst du die noch nennen?

hast du schon die JFreeChart-Library und in dein Programm eingebunden?
alles erklären kann ich dazu nicht, nur diese Hinweise geben


----------



## Guest (10. Apr 2008)

Sorry, war wohl etwas verwirrt.... :roll: nächster versuch.

http://www.mandomartis.a.se/essentialbeans/download2.html

habe mal die linechart.class ausgeführt. nun fehlt mir die *.java, vielleicht kann ich damit mehr anfangen vorallem erst einmal Fenster grösser mchen  aber das sieht mir schon gebrauchbarer aus...Nur wie komme ich dran??

hab zwar paar decompiler gesehen, ob da der code noch lesbar ist!?!? :-(

Matze


----------



## SlaterB (10. Apr 2008)

> Click here to download an evaluation version of this Java Bean
> 
> Click here to purchase this Java Bean for just $22.00!



tolle Einstellung zum Umgang mit fremder Arbeit  :bloed:


----------



## Guest (10. Apr 2008)

Wie bitte?! Ich dachte, die Klasse wäre für STudenten und entwickler free, oder?! Hab ich da was übersehen?!


----------



## SlaterB (10. Apr 2008)

so detailliert habe ich nicht nachgeschaut, aber selbst wenn,
dann lade dir doch die freie Version anstatt das böse Wort Decompiler zu verwenden 

edit:
> STudenten und entwickler 

wer bleibt dann noch zum Bezahlen übrig, Rentner?


----------



## anderer Gast (10. Apr 2008)

@Slater naja wir haben alle mal aufm Schlauch gestanden.

Witzig ist aber das er mit JFreeChart nicht klar kommt, aber sich den Akt machen will zu decompilieren und sich dann durch den Code zu wühlen. So motiviert will ich auch mal sein.


----------



## Guest (10. Apr 2008)

ist wohl die verzweifelung  Mein Gott sitze heut den ganzen Tag dran und nichts geschafft, wenn dass nicht deprimierend ist :-( Ja dann sag mal einer, warum bekomme ich die Classen von JFree dann net compiliert?! bekomme immer nur Fehlermeldungen. Ist doch klar, dass man das nimmt, was zumindest läuft, oder ?!

Gruss
Matze

wusste gar net, dass decompilieren verboten ist  :roll:  naja, man lernt wohl nie aus.


----------



## SlaterB (10. Apr 2008)

> bekomme immer nur Fehlermeldungen

zweite Nachfrage: nenne die Fehlermeldungen

zweite Nachfrage: hast du schon die JFreeChart-Library und in dein Programm eingebunden?
bist du überhaupt schon geübt mit der Arbeit mit externen Libraries?


----------



## Guest (11. Apr 2008)

Wieso bekomme ich immer folgende Fehlermeldung? 

package org.jfree.chart.renderer.category does not exist

ich arbeite mit dem Jcreator und da binde ich die Libs direkt in das Projekt ein. Eingebunden habe ich jetzt 
jfreechart-1.0.9-demo.jar
jcommon.jar
jfreechart.jar

aber dennoch stimmt was nicht


----------



## SlaterB (11. Apr 2008)

schaue bitte ins jar, ob das package und die Klassen darin vorhanden sind,
das wechselt von Version zu Version

wenns drin ist und es trotzdem nicht klappt kann ich freilich keine besonderen Konfigurationstipps mehr geben,
versuche es evtl. in der Konsole mit Classpath als alternativer Test zu deiner IDE


----------



## Guest (11. Apr 2008)

Hallo 

die waren nicht vorhanden, habe mir dann eine rausgesucht, die alles enthält habe jetzt die 1.0.9 und da sind sie drin

das compilieren hat funktioniert. Beim Ausführen bekomme ich folgende Meldung, weiss aber nicht was sie aussagt

Exception in thread "main" java.lang.NoSuchMethodError: org.jfree.ui.RectangleInsets.<init>(DDDD)V
    at org.jfree.chart.axis.Axis.<clinit>(Axis.java:137)
    at org.jfree.chart.ChartFactory.createLineChart(ChartFactory.java:1163)
    at LineChartDemo1.createChart(LineChartDemo1.java:147)
    at LineChartDemo1.<init>(LineChartDemo1.java:75)
    at LineChartDemo1.main(LineChartDemo1.java:221)

Process completed.


----------



## SlaterB (11. Apr 2008)

die Klasse RectangleInsets liegt bei mir in einer jcommon-1.0.8.jar 

gleiches Spiel: prüfe, ob sie in deinem Jar vorhanden ist, 
und auch, ob du auf diese Klasse direkt von deinem Programm zugreifen kann 
(ob das jcommon-jar korrekt eingebunden ist)


----------



## Guest (11. Apr 2008)

so sieht die Klasse aus:



```
/* ===========================================================
 * JFreeChart : a free chart library for the Java(tm) platform
 * ===========================================================
 *
 * (C) Copyright 2000-2004, by Object Refinery Limited and Contributors.
 *
 * Project Info:  [url]http://www.jfree.org/jfreechart/index.html[/url]
 *
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation;
 * either version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License along with this
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307, USA.
 *
 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 
 * in the United States and other countries.]
 *
 * -------------------
 * LineChartDemo1.java
 * -------------------
 * (C) Copyright 2002-2004, by Object Refinery Limited and Contributors.
 *
 * Original Author:  David Gilbert (for Object Refinery Limited);
 * Contributor(s):   -;
 *
 * $Id: LineChartDemo1.java,v 1.27 2004/05/27 09:10:42 mungady Exp $
 *
 * Changes
 * -------
 * 08-Apr-2002 : Version 1 (DG);
 * 30-May-2002 : Modified to display values on the chart (DG);
 * 25-Jun-2002 : Removed redundant import (DG);
 * 11-Oct-2002 : Fixed errors reported by Checkstyle (DG);
 *
 */

//package org.jfree.chart.demo;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RectangleInsets;
import org.jfree.ui.RefineryUtilities;

/**
 * A simple demonstration application showing how to create a line chart using data from a
 * {@link CategoryDataset}.
 */
public class LineChartDemo1 extends ApplicationFrame {

    /**
     * Creates a new demo.
     *
     * @param title  the frame title.
     */
    public LineChartDemo1(final String title) {
        super(title);
        final CategoryDataset dataset = createDataset();
        final JFreeChart chart = createChart(dataset);
        final ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new Dimension(500, 270));
        setContentPane(chartPanel);
    }

    /**
     * Creates a sample dataset.
     * 
     * @return The dataset.
     */
    private CategoryDataset createDataset() {
        
        // row keys...
        final String series1 = "First";
        final String series2 = "Second";
        final String series3 = "Third";

        // column keys...
        final String type1 = "Type 1";
        final String type2 = "Type 2";
        final String type3 = "Type 3";
        final String type4 = "Type 4";
        final String type5 = "Type 5";
        final String type6 = "Type 6";
        final String type7 = "Type 7";
        final String type8 = "Type 8";

        // create the dataset...
        final DefaultCategoryDataset dataset = new DefaultCategoryDataset();

        dataset.addValue(1.0, series1, type1);
        dataset.addValue(4.0, series1, type2);
        dataset.addValue(3.0, series1, type3);
        dataset.addValue(5.0, series1, type4);
        dataset.addValue(5.0, series1, type5);
        dataset.addValue(7.0, series1, type6);
        dataset.addValue(7.0, series1, type7);
        dataset.addValue(8.0, series1, type8);

        dataset.addValue(5.0, series2, type1);
        dataset.addValue(7.0, series2, type2);
        dataset.addValue(6.0, series2, type3);
        dataset.addValue(8.0, series2, type4);
        dataset.addValue(4.0, series2, type5);
        dataset.addValue(4.0, series2, type6);
        dataset.addValue(2.0, series2, type7);
        dataset.addValue(1.0, series2, type8);

        dataset.addValue(4.0, series3, type1);
        dataset.addValue(3.0, series3, type2);
        dataset.addValue(2.0, series3, type3);
        dataset.addValue(3.0, series3, type4);
        dataset.addValue(6.0, series3, type5);
        dataset.addValue(3.0, series3, type6);
        dataset.addValue(4.0, series3, type7);
        dataset.addValue(3.0, series3, type8);

        return dataset;
                
    }
    
    /**
     * Creates a sample chart.
     * 
     * @param dataset  a dataset.
     * 
     * @return The chart.
     */
    private JFreeChart createChart(final CategoryDataset dataset) {
        
        // create the chart...
        final JFreeChart chart = ChartFactory.createLineChart(
            "Line Chart Demo 1",       // chart title
            "Type",                    // domain axis label
            "Value",                   // range axis label
            dataset,                   // data
            PlotOrientation.VERTICAL,  // orientation
            true,                      // include legend
            true,                      // tooltips
            false                      // urls
        );

        // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
//        final StandardLegend legend = (StandardLegend) chart.getLegend();
  //      legend.setDisplaySeriesShapes(true);
    //    legend.setShapeScaleX(1.5);
      //  legend.setShapeScaleY(1.5);
        //legend.setDisplaySeriesLines(true);

        chart.setBackgroundPaint(Color.white);

        final CategoryPlot plot = (CategoryPlot) chart.getPlot();
        plot.setBackgroundPaint(Color.lightGray);
        plot.setRangeGridlinePaint(Color.white);

        // customise the range axis...
        final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
        rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
        rangeAxis.setAutoRangeIncludesZero(true);

        // ****************************************************************************
        // * JFREECHART DEVELOPER GUIDE                                               *
        // * The JFreeChart Developer Guide, written by David Gilbert, is available   *
        // * to purchase from Object Refinery Limited:                                *
        // *                                                                          *
        // * [url]http://www.object-refinery.com/jfreechart/guide.html[/url]                     *
        // *                                                                          *
        // * Sales are used to provide funding for the JFreeChart project - please    * 
        // * support us so that we can continue developing free software.             *
        // ****************************************************************************
        
        // customise the renderer...
        final LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
//        renderer.setDrawShapes(true);

        renderer.setSeriesStroke(
            0, new BasicStroke(
                2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND,
                1.0f, new float[] {10.0f, 6.0f}, 0.0f
            )
        );
        renderer.setSeriesStroke(
            1, new BasicStroke(
                2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND,
                1.0f, new float[] {6.0f, 6.0f}, 0.0f
            )
        );
        renderer.setSeriesStroke(
            2, new BasicStroke(
                2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND,
                1.0f, new float[] {2.0f, 6.0f}, 0.0f
            )
        );
        // OPTIONAL CUSTOMISATION COMPLETED.
        
        return chart;
    }
    
    /**
     * Starting point for the demonstration application.
     *
     * @param args  ignored.
     */
    public static void main(final String[] args) {

        final LineChartDemo1 demo = new LineChartDemo1("Line Chart Demo");
        demo.pack();
        RefineryUtilities.centerFrameOnScreen(demo);
        demo.setVisible(true);

    }

}
```


und so die Fehlermeldung, beim Ausführen der klasse:

Exception in thread "main" java.lang.NoSuchMethodError: org.jfree.ui.RectangleInsets.<init>(DDDD)V
    at org.jfree.chart.axis.Axis.<clinit>(Axis.java:137)
    at org.jfree.chart.ChartFactory.createLineChart(ChartFactory.java:1163)
    at LineChartDemo1.createChart(LineChartDemo1.java:148)
    at LineChartDemo1.<init>(LineChartDemo1.java:76)
    at LineChartDemo1.main(LineChartDemo1.java:222)

Process completed.

die RectangleInsets ist bei mir in der jcommon vorhanden


----------



## SlaterB (11. Apr 2008)

ach ja, die Fehlermeldung spricht ja nur vom fehlenden Konstruktor,
ich kann aber wie vorher außer dem Hinweis auf evtl. falsche Version nix mehr beitragen

wenn ich auf
http://www.jfree.org/jcommon/download/
nachschaue, dann sehe ich da als neueste Version 
jcommon-1.0.8.jar,

wenn du nur eine jcommon.jar hast, dann wundert mich gar nix


----------



## Guest (11. Apr 2008)

Also die org.jfree.ui.RectangleInsets ist definitiv enthalten, aber sie wird von keinem Beispiel richtig erkannt!?! ich versuche mal die 1.0.8 vielleicht bringts ja was.


----------



## Guest (11. Apr 2008)

und es hat tatsächlich daran gelegen  wow super, es läuft was  jetzt fragt sich nur wie und was  

Danke danke  schmatz schmatz  

habe die jcommon1.0.12 genommen also den neusten STand  Hammer


----------



## tuxedo (11. Apr 2008)

Wenn er nur schon früher auf SlaterB gehört hätte *z z z z* dann wären jetzt nur halb so viel Smilies nötig gewesen und das Beispielprogramm hätte schon ne ganze Stunde früher funktioniert ...

;-)

Alex


----------



## Guest (11. Apr 2008)

immerhin besser Spät als Nie  

Danke für deine GeduldSlaterB  aller ANfang ist nunmal schwer  aber bin happy. Jetzt muss ich sehen, wo die x und y Werte zu finden sind,  damit ich sie mir von DB darein legen kann


----------



## Guest (21. Apr 2008)

habe ne Frage hierzu:

ich habe um die 1500 Datensätze, die ich in diese Diagramm einzeichnen möchte. mit diesem Beispiel kann ich mir nicht die Informationen zu jedem Punkt geben lassen. Weiterhin werden zu jedem Punkt die x und y Achsen beschriftet. Bei 1500 Punkten kann man nichts mehr erkennen.

gruss
jens


----------



## Master4 (21. Apr 2008)

vielleicht geht das ja mit Applet oder lässt dir die Diagramme direkt in Excel ausspucken, aber ich weiss nicht wie es geht, dass müssten schon andere erklären oder vielleicht seiten aufführen

LG Master


----------

