DefaultCategoryDataset sortierung von columnKey

gagagurge

Neues Mitglied
Hi, ich bin jetzt neu hier, und habe auch schon mal die Suchfunktion genutzt ( um die ersten Fragen schon mal zu beantworten) aber keine passende Antwort für mein Problem gefunden.

Ich versuche mal so gut wie möglich mein Problem zu beschreiben:

Ich habe eine ArrayList mit Objekten. Guter Vergleich wäre hier ArrayList<Auto>.
Das Auto hat nur 3 Werte (die halt auch relevant sind für mich).
zb:
Name: AUDI
Verkaufsmenge: 200
Monat: 2008-09
================
Name: AUDI
Verkaufsmenge: 300
Monat: 2009-10
================
Name: AUDI
Verkaufsmenge: 100
Monat: 2009-11
================
Name: BMW
Verkaufsmenge: 300
Monat: 2008-07
================
Name: BMW
Verkaufsmenge: 200
Monat: 2008-08
================
Name: BMW
Verkaufsmenge: 100
Monat: 2008-08
================
Name: MERCEDES
Verkaufsmenge: 100
Monat: 2010-07
================
Name: MERCEDES
Verkaufsmenge: 400
Monat: 2010-08
================

Wenn ich jetzt diese Werte in mein DefaultCategoryDataset rein schreibe funktioniert alles schön und gut, gebe ich das ganze als Grafik aus (wie jeder sicher aus zb Excel kennt).

Java:
 DefaultCategoryDataset dcd = new DefaultCategoryDataset ();
dcd.addValue(auto.getMenge(), auto.getName(), auto.getDatum());

Meine X Achse ist aber leider dann nicht sortiert. Sprich ich habe unterschiedliche Werte : 2009, 2010, 2008 usw...
Aber ich will natürlich schon eine richtige Zeitachse haben und deswegen habe ich jetzt mal versucht meine ArrayList nach Datum zu sortieren, hat wunderbar geklappt sieht dann beispielsweise so aus:
(also vorher war das Schema immer so : AAA,BBB,CC,DDDD,EEEE,FF,GGGG, usw. sprich A entspricht fürs erste Auto, B für das 2., usw... )
jetzt sieht es nach diesem Schema aus ( je nach Datum halt):
A,B,A,C,D,F,B,A,G,A,G,C, usw...

ABER

Wenn ich diese sortierte ArrayList jetzt dem DefaultCategorieDataset übergebe bekomme ich bei der Grafik nur 1 Objekt angezeigt. (womöglich das erste)

Vorher waren mehrere Linien (aber durcheinander, wegen der Zeitachse) und jetzt ist nur noch eine Linie (und die sehr kurz und sicher nicht korrekt) aber dafür eine sortierte X-Achse.


Ich hoffe ich habe mich so verständlich wie möglich ausgedrückt und bitte euch um Rat und Hilfe!

DANKE!!!
 
S

SlaterB

Gast
dass es um JFreeChart geht darf man sich selber dazudenken?

DefaultCategoryDataset kommt da glaube ich tatsächlich nicht weit, dort muss du schon für jeden X-Wert für jede Kategorie einen y-Wert angeben

folgendes funktioniert vielleicht besser:
JFreeChart: XY Step Chart Demo : XY Step Area ChartChartJava
wobei du dann unten eine durchgehende Zeit-Beschriftung hast mit zweifelhafter Anzeige

versuche das Beispiel zusammen mit
Java:
        final XYSeries s1 = new XYSeries("Audi", false, true);
        s1.add(DateUtilities.createDate(2002, 2, 1).getTime(), 200);
        s1.add(DateUtilities.createDate(2003, 2, 1).getTime(), 100);
        s1.add(DateUtilities.createDate(2004, 2, 1).getTime(), 300);

        final XYSeries s2 = new XYSeries("BMW");
        s2.add(DateUtilities.createDate(2002, 5, 1).getTime(), 400);
        s2.add(DateUtilities.createDate(2006, 5, 1).getTime(), 200);
        s2.add(DateUtilities.createDate(2007, 5, 1).getTime(), 100);

edit:
ach, die senkrechten 'Steps' nach oben sind vielleicht nicht so schön, normale Linien gibts bei
JFreeChart: XY Series Demo : XY Series ChartChartJava

dafür muss man quasi nur
chart = ChartFactory.createXYStepChart(
durch
chart = ChartFactory.createXYLineChart(
ersetzen,

leider bestehtt bei XYLine die x-Achse standardmäßig aus Zahlen, keine Dati, deswegen bin ich erst bei dem Step-Beispiel gelandet
vielleicht kann man die Achse in XYLine noch irgendwie beeinflussen..

edit2:
ok,
plot.setDomainAxis(new DateAxis());
hilft schon, warum dass bei Step Standard ist, bei Line aber nicht und aus den Dates im DataSet nicht erkannt wird?..
JFreeChart ist oft Bastel-Arbeit
 
Zuletzt bearbeitet von einem Moderator:

gagagurge

Neues Mitglied
Danke vielmals für die bisherige Hilfe!

Doch wie immer ist google dein Freund und Helfer, und wenn man mal das Hirn einschalten würde was ich jetzt glücklicherweise getan habe dann sucht man nach begriffen wie "TIME SERIES CHART" und siehe da 1000000 Beispiele genau so wie ich es brauche!

naja, falls jemand in zukunft sowas sucht: (ZEIT DIAGRAMM ;) )

JFreeChart: Time Series Demo : Time Series ChartChartJava

Von meiner Seite aus aber trotzdem vielen Dank, ich wäre auf die Idee zb gar nicht gekommen diesen JFreeChart anzuschauen.

DANKE!

Lg
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L JavaFX TableView Column Sortierung AWT, Swing, JavaFX & SWT 1
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
D Sortierung in der einfach-verketteten Listen AWT, Swing, JavaFX & SWT 13
D Sortierung von Umlauten in einer JTable AWT, Swing, JavaFX & SWT 5
N Swing JTable mit Sorter: Keine Sortierung bei Klick in Header AWT, Swing, JavaFX & SWT 3
B Probleme bei Sortierung einer Tabelle mit DefaultTableModel AWT, Swing, JavaFX & SWT 6
S JTable - Sortierung beibhalten / Speichern. AWT, Swing, JavaFX & SWT 3
M JTable Sortierung - -zeilenweise mit Objekten verknüpfen AWT, Swing, JavaFX & SWT 4
C [SWT] Widget Table verliert nach Sortierung farbige / eingefärbter Background / Zellen AWT, Swing, JavaFX & SWT 3
L Swing Falscher Wert nach eigener Sortierung (JTable) AWT, Swing, JavaFX & SWT 2
M Sortierung und Vertauschen von Spalten in JTable AWT, Swing, JavaFX & SWT 6
D Liste mit Tabellenkopf, Sortierung usw. AWT, Swing, JavaFX & SWT 2
J Daten in JTable nach Sortierung auslesen AWT, Swing, JavaFX & SWT 2
hdi Swing JTable - multiple Sortierung AWT, Swing, JavaFX & SWT 4
V JTable: Sortierung einer Spalte zum Programmstart? AWT, Swing, JavaFX & SWT 3
GilbertGrape JTable Sortierung. AWT, Swing, JavaFX & SWT 10
P JTable:Sortierung nach der Zeit/Spalte mit Calendar-Objekten AWT, Swing, JavaFX & SWT 2
D Sortierung beim Klicken auf Header einer JdbTable verhindern AWT, Swing, JavaFX & SWT 3
M Spaltenbreite mit Sortierung AWT, Swing, JavaFX & SWT 3
S JList gibt nach Sortierung mit Collections keine Anzahl mehr AWT, Swing, JavaFX & SWT 3
L Falsche Zeile gelöscht nach Spalte Sortierung in JTable AWT, Swing, JavaFX & SWT 2
J JTable Sortierung AWT, Swing, JavaFX & SWT 18
B Sortierung der ColumnHeader AWT, Swing, JavaFX & SWT 8
N Sortierung einer JTable AWT, Swing, JavaFX & SWT 2
S Sortierung in JTable? AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen

Neue Themen


Oben