Forum: PC-Programmierung MATLAB mehrere Boxplots in einer Grafik


von Tobi (Gast)


Lesenswert?

Hallo,

ich habe eine Datenmatrix. Dabei handelt es sich um Messdaten. Die erste 
Spalte gibt den zu messenden Wert an (also sozusagen den 
Erwartungswert). Dann sind pro Zeile die entsprechenden wirklich 
gemessenden Werte zu finden.

Nun möchte ich gerne für jede Messung einen Boxplot erstellen alle 
Boxplots nebeneinander in eine Grafik packen. Idealerweise sollte die 
erste Spalte der Matrix dann die x-Achse der Grafik entsprechen.

Mein Ansatz sieht erstmal so aus:
1
figure(1);
2
hold on;
3
4
for i=1:length(data)
5
    boxplot(data(i, 2:end));
6
end

Hier habe ich aber nur einen Wert auf der x-Achse und alle Plots sind 
übereinander. Wie kann ich diese nebeneinander bekommen?

Ich möchte also am besten sowas haben:
1
figure(1);
2
hold on;
3
4
for i=1:length(data)
5
    % Zeichne an x-Koordinate "data(i, 1)" die Grafik "boxplot(data(i, 2:end))"
6
end

Hab noch nicht allzu viel mit Matlab gemacht und bin grade ratlos.

von Thomas (Gast)


Lesenswert?

subplot?

von Tobi (Gast)


Lesenswert?

subplot ist leider nicht das war ich will. Ich hab ein Beispiel gefunden 
wo genau das gemacht wird was ich will. Ich will etwas wie hier in 
Example 1

http://www.mathworks.de/help/toolbox/stats/boxplot.html

Also es scheint mit sowas wie GroupedData zu gehen aber ich verstehe 
nicht wie man die bekommt/benutzt.

von TOOOHMAAATOOOH (Gast)


Lesenswert?

einfach ein array rein werfen, oder nich? oder gehts dir darum das die 
xlables automatisch auftauchen und nicht mit 1,2,3 durchnummeriert sind?

von Tobi (Gast)


Lesenswert?

Labels wären schön, aber 1,2,3,... wär auch OK. Wenn ich ein Array 
reinwerfe, dannwird nur eine Box gezeichnet. wenn ich die ganze Matrix 
verwende, dann sehen alle Boxen gleich aus. Das ist definitiv falsch. 
Wenn ich zwei Grafiken mit jeweils einer Box von verschiedenen Zeilen 
erstelle, dann sind die unterschiedlich.

von TOOOHMAAATOOOH (Gast)


Lesenswert?

kannst du mal deine m file posten oder dein array das du in den boxplot 
reinwirfst?

von Tobi (Gast)


Lesenswert?

Das erste Problem hab ich gelöst. Da hatte ich wohl irgendwie 
fehlerhafte Daten erhalten mit denen ich dann gearbeitet hab oder sowas.

Dennoch habe ich jetzt ein neues Problem mit Boxplots. Ich habe jetzt 
eine Matrix wo nicht alle Datensätze den gleiche Länge haben. Somit hab 
ich das als Cellarray vorliegen und damit kann boxplot wohl nicht 
umgehen. Gibt es eine Möglichkeit ein Boxplot zu erstellen, wo die 
Datensätze verschiedene Längen haben? Es kommen insgesamt 3 Längen vor. 
Also die ersten Datensätze bestehen aus 60 Daten, dann kommen welche mit 
40 Daten pro Datensatz und am Ende habe ich noch einige mit nur 20 Daten 
pro Datensatz.

von Tobi (Gast)


Lesenswert?

OK auch das scheine ich geschafft zu haben.

Ich habe jetzt alle Datensätze stumpf hintereinander in ein Vektor 
geschrieben und noch einen zweiten Vektor mitgeführt, welcher zu jeden 
Korrespondierenden Messwert die zugehörige Gruppe mitführt.

Irgendwie ist mit MATLAB noch nicht so ganz geheuer.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.