Anwendungsentwicklung mit JFreeChart: Revival des Java Kuchen

22.08.2008

Das Online-Wörterbuch LEO übersetzt Revival unter Anderem mit die Neuinszenierung. Aus gegebenem Anlass möchte ich eine Java Bibliothek vorstellen, für die dieser Begriff absolut zutreffend ist, da sie zurzeit ihr Revival in der Anwendungsentwicklung bei doubleSlash erfährt: JFreeChart.

Ein 3D Kuchen Diagramm Beispiel mit JFreeChartMit der JFreeChart-Bibliothek lassen sich auf einfache Art professionelle Diagramme erstellen. Sehr eindrucksvoll wird dies auf der Projekt-Seite anhand einer Java Web Start Anwendung JFreeChart Demo gezeigt. Neben klassischen XY-Diagrammen wird den Gourmets unter den Java Anwendungsentwicklern spätestens bei dem dargestellten Kuchen-Diagramm das Wasser im Mund zusammenlaufen.

Die zahlreichen Chart Varianten geben einen ersten Einblick in die Möglichkeiten von JFreeChart. Einen positiven Einfluss auf die Entscheidung für JFreeChart haben außerdem die unterschiedlichen Exportformate (PNG, JPEG, SVG, etc.) und der Einsatz in Servlets. Aus technischer Sicht überzeugt das Open Source Projekt außerdem durch die gut dokumentierte API und die seit dem Jahr 2000 anhaltende Weiterentwicklung durch den Project Leader David Gilbert und seine Helfer.

Für den erfolgreichen Einsatz von JFreeChart findet sich eine breite Menge an Informationen, Tipps und kleinen Hilfestellungen in dem offiziellen Forum oder im World Wide Web. Neben dem frei verfügbaren Source Code der Bibliothek, werden die Code-Beispiele der Demo-Anwendung jedoch nur zusammen mit der kostenpflichtigen Developer-Guide zur Verfügung gestellt. Spätestens bei individuellen Anpassungen des Layout der Diagramme bietet dieses Dokument jedochhttp://www.jfree.org/phpBB2/viewforum.php?f=3 eine sehr gute Hilfestellung und tiefe Einblicke in die Anpassungsmöglichkeiten von JFreeChart.

Developer müssen sich bei der Anwendungsentwicklung zunächst nicht mit den grafischen Komponenten der Diagramme befassen. Mit JFreeChart und wenigen Zeilen Code entstehen beliebige Diagramme mit großer Aussagekraft. Folgendes Codefragment stammt beispielsweise aus dem frühen Stadium von speedTracks und generiert ein einfaches, leicht modifiziertes Diagramm als JPEG-Datei:

XYSeries rates = new XYSeries("Rate");
rates.add(0.0d, 0.0d);
rates.add(1.0d, 3.0d);
rates.add(2.0d, 4.0d);
rates.add(3.0d, 8.0d);
rates.add(4.0d, 1.0d);
XYDataset dataset1 = new XYSeriesCollection(rates);
JFreeChart chart = ChartFactory.createXYLineChart(null, "Messpunkt", "Dl Rate in KB/s", dataset1, PlotOrientation.VERTICAL, false, false, false);
ValueAxis a = ((XYPlot) chart.getPlot()).getDomainAxis();
a.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
((XYPlot) chart.getPlot()).setOrientation(PlotOrientation.VERTICAL);
ChartUtilities.saveChartAsJPEG(new File("chart.jpg"), chart, 737, 200);

Dank der Lizenzierung unter der GNU Lesser General Public License (LGPL) ist der Einsatz in Closed Source Projekten erlaubt. Ein entscheidender Grund, warum diese Bibliothek bspw. schon vor Jahren die erste Wahl für den produktiven und umfangreichen Einsatz in einem bis heute bestehenden Kundenprojekt war.

Das zu Beginn erwähnte Revival bei doubleSlash erhält JFreeChart in diesen Tagen im Rahmen des speedTrack-Projekts. Darin wird die Bibliothek aus 100% Java erfolgreich eingesetzt und bildet die Grundlage zur grafischen Aufbereitung der Messpunkte einzelner speedTracks. Zwar werden dabei keine Kuchen-Diagramme gebacken, doch zeigt dieses Beispiel den vielseitigen Einsatz dieser Bibliothek in Verbindung mit aktuellen Technologien und Lösungen.

Zurück zur Übersicht

5 Kommentare zu “Anwendungsentwicklung mit JFreeChart: Revival des Java Kuchen

  1. Hallo Bernd,
    wie du schon zurecht erwähnt hast muss genau abgewägt werden, welche Konsequenzen ein Einsatz einer Lizenzierung im eigenen Projekt mit sich bringt. Ebenso sollte ein direkter Kontakt mit dem Entwickler in Betracht gezogen oder eine solche Forumsdiskussion durchaus beachtet werden, um bspw. die Risiken bei unklarer lizenzrechtlicher Sachlage besser einschätzen zu können.
    Doch bis solche Unklarheiten vollkommen beseitigt sind, dürfen wir uns wohl noch eine Weile an der Bettlektüre „Lizenzdiskussionen“ erfreuen.
    Grüße Michael

  2. Hallo Michael. die Diskussion bei JFreeChart über die LGPL2 ist interessant, spiegelt sie doch ziemlich genau meinen Stand der Erkenntnisse (incl. Diskussion mit der FSF wieder): ableiten von LGPL Klassen (oder Interfaces) ist eine höchst umstrittene Sache.

    Ich hoffe mal mit neueren Versionen wird das besser, oder aber den Ansatz von GPL+Linking Exception. Nur ist es halt schwer alle Projekte dahingehend zu bekehren.

    Gruss
    Bernd

  3. Hallo Bernd,
    von Streiten kann hier keine Rede sein. Im aktuellen Fall von JFreeChart und speedTrack möchte ich auf eine Diskussion im Forum verweisen. Hier wurde dieses Thema aufgegriffen und von David Gilbert direkt kommentiert:
    http://www.jfree.org/phpBB2/viewtopic.php?t=19078&highlight=proprietary+sotftware

    Selbstverständlich müssen beim Einsatz solcher Bibliotheken verschiedene Aspekte bedacht werden, nicht nur die angesprochenen Punkte viraler Effekt und Ökosystem. Doch ich habe den Punkt Closed Source bewusst so formuliert und verweise in diesem Fall gerne auf unser Portofolio: „Wir entwickeln individuelle Unternehmenssoftware.“ Genau hierbei liegt meines Erachtens der Knackpunkt: Im Allgemeinen ist festzuhalten, dass die Anwender unserer Software über deren Aufbau und Inhalt informiert werden und je nach Auftrag mit über den entstandenen Sourcecode verfügen dürfen. Daher richten wir auch den Einsatz verschiedener Software-Bibliotheken innerhalb unserer Anwendung an dem entsprechenden Kundenauftrag aus.
    Danke an dieser Stelle für deine Bemerkung und deinen Hinweis die Lizenzierung genau zu betrachten. Dies sollte jeder Entwickler beherzen, der freier Software einsetzt!

    Hallo Andreas,
    neben JFreeChart existiert sicherlich viel mehr Software die denselben Zweck oder mehr erfüllt. (Auch hier lohnt sich ein Blick auf die Homepage von JFreeChart: http://www.jfree.org/jfreechart/faq.html#FAQ13)
    Wie auch beim Lizenzthema muss genau geprüft werden, welche Vor- und Nachteile eine Bibliothek mit sich bringt, noch „bevor“ dieselbe eingesetzt wird. Im Fall von speedTrack wurde diese Frage jedoch mit Erfahrung beantwortet: 100% Java, gute Performance, einfache Entwicklung und frei verfügbares/bereits vorhandenes Know-How.

    Beste Grüße euch beiden vom B’See,
    Michael

  4. Man könnte aber auch die Programmiersprache R verwendet um solche Diagramme zu verstellen. R ist zwar sehr mächtig aber auch nicht so leicht zu erlernen. JFreeChart ist da schon sehr viel angenehmen zu verwenden.

    Grüße aus dem Gäu

  5. Müsst Ihr Euch auch immer mit der LGPL Thematik herumstreiten. Zwar ist die _L_GPL genau dafür gedacht in Anwendungen verwendet zu werden, jedoch ist das Thema extending von Klassen nicht so ganz eindeutig beschrieben. Auch die FSF FAQ zu dem Thema sagt, dass man beim Ableiten von LGPL Klassen den viralen Effekt riskiert.

    Wegen den generell unklaren Sachlagen (und weitere Probleme wie z.B. das Freistellen von Forderungen, das erlauben von Reengeneering oder das bereitstellen einer Build Umgebung) haben viele Anwender- oder Partnernunternehmen eine Abneigung auch gegen LGPL (bei SAP z.B. tabu).

    Von daher kann man durch aus von genialen Projekten wie JFreeChart profitieren, aber man muss sich da schon sicher sein dass dies im Ökosystem passt.

    Bernd

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*