Hi Leute!
Hab ein Prog geschrieben, wo eingegebene statistische Werte in einer ArrayList gespeichert werden. Es werden MinWert, MaxWert, arithmetisches Mittel, Standardabweichung und Median berechnet und optisch visualisiert.
1. Frage:
Die Darstellung mittels Balkendiagramm funktioniert einwandfrei- jedoch klappt das mit dem Liniendiagramm nicht ganz und die Linien gehen wild kreuz und quer über den Bildschirm... :-(
2. Frage:
Bei der Berechnung des Medians kopiere ich mir die "ArrayList", sortiere dann die Kopie mit "Collections.sort(ArrayList sammlungKopie)", berechne mir dann den Median und gebe den Wert mit "return" aus.
Mein Problem:
Bei der Anzeige des Balkendiagramms werden die Werte bei jeder neuen Eingabe neu aufsteigend sortiert angezeigt.
Ich will sie jedoch in der Reihenfolge, in der sie eingegeben wurden darstellen, nicht jedesmal neu sortiert!?
Hat irgendwer von euch einen Plan, woran das liegen könnte?
-----------------------------------------------------------------------------------------------------------------------
thx && greets, David
Hab ein Prog geschrieben, wo eingegebene statistische Werte in einer ArrayList gespeichert werden. Es werden MinWert, MaxWert, arithmetisches Mittel, Standardabweichung und Median berechnet und optisch visualisiert.
1. Frage:
Die Darstellung mittels Balkendiagramm funktioniert einwandfrei- jedoch klappt das mit dem Liniendiagramm nicht ganz und die Linien gehen wild kreuz und quer über den Bildschirm... :-(
Code:
.
.
.
protected void paintComponent(Graphics g)
{
frameHöhe = this.getHeight();
frameBreite = this.getWidth();
anzahlWerte = sammlung.gibAnzWerte();
linienAbstand = frameBreite / anzahlWerte - 1;
double max = sammlung.gibMaxWert();
maxWert = max + max / 2;
skalierung = frameHöhe / maxWert;
super.paintComponent(g);
for(int i = 0; i < sammlung.gibAnzWerte(); i++)
{
g.setColor(Color.BLUE);
ArrayList<Double> datenSamml = sammlung.gibDaten();
double wertDouble1 = datenSamml.get(i);
double wertDouble2 = 0;
if(i < datenSamml.size() - 1) {
wertDouble2 += datenSamml.get(i+1);
}
linienAnfang = 0d;
linienEnde = linienAnfang + linienAbstand;
linienHöhe1 = wertDouble1 * skalierung;
linienHöhe2 = wertDouble2 * skalierung;
g.drawLine((int) linienAnfang, frameHöhe - (int) linienHöhe1 - 10,
(int) linienEnde, frameHöhe - (int) linienHöhe2 - 10);
linienAnfang = linienEnde;
}
}
.
.
.
2. Frage:
Bei der Berechnung des Medians kopiere ich mir die "ArrayList", sortiere dann die Kopie mit "Collections.sort(ArrayList sammlungKopie)", berechne mir dann den Median und gebe den Wert mit "return" aus.
Mein Problem:
Bei der Anzeige des Balkendiagramms werden die Werte bei jeder neuen Eingabe neu aufsteigend sortiert angezeigt.
Ich will sie jedoch in der Reihenfolge, in der sie eingegeben wurden darstellen, nicht jedesmal neu sortiert!?
Hat irgendwer von euch einen Plan, woran das liegen könnte?
-----------------------------------------------------------------------------------------------------------------------
thx && greets, David