WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Wahrscheinlichkeitsdiagramm erstellen?

 

huenermund_c

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.02.2016, 08:33     Titel: Wahrscheinlichkeitsdiagramm erstellen?
  Antworten mit Zitat      
Hallo,
ich habe einen Datensatz mit 30 Werten und möchte ein Wahrscheinlichkeitsdiagramm in Matlab erstellen...

Bei OriginLab lässt sich das recht einfach (Normalverteilung & Score Methode (Blom) wählen->Den Rest erledigt das Programm) umsetzen. Auf Bild 1 ist das Diagramm von Origin. So würde ich es gerne in Matlab darstellen, weil ich hier noch andere Funktionen unterbringen muss die es bei Origin nicht gibt.

Lösungsansatz (Bild 2)
-Datensatz in Origin einfügen
-Wahrscheinlichkeitsdiagramm (Normalverteilung & ScoreMethode (Blom) wählen) um Percentile berechnen zu lassen.
-Datensatz & Percentile in Matlab laden und plotten (plot(Datensatz,Percentile))
-Funktioniert auch soweit alles, ABER ich kann die y-Achse nicht wie in Origin darstellen. Dort wird die Achse zwischen 0 bis 50 & 50 bis 100 unterschiedlich gestaucht, sodass die Werte im Diagramm nahezu linearisiert sind. Das erreiche ich nicht in Matlab mit meiner Schummelei.

Wie kann ich entweder nur die y-Achse so verändern wie bei Origin ODER auch die Normalverteilung und Score Methode nach Blom in Matlab anwenden und das ganze "linearisiert" plotten?

Den Matlab Code spare ich mir, weil es nur die Plotfunktion ist, und ich sonst nur definierte punkte auf der y achse anzeigen lassen.

Über eine Hilfestellung würde ich mich freuen

bild2_matlab.jpg
 Beschreibung:

Download
 Dateiname:  bild2_matlab.jpg
 Dateigröße:  19.91 KB
 Heruntergeladen:  484 mal
bild1_origin.jpg
 Beschreibung:

Download
 Dateiname:  bild1_origin.jpg
 Dateigröße:  108.45 KB
 Heruntergeladen:  513 mal


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 04.02.2016, 09:39     Titel:
  Antworten mit Zitat      
Auch in Matlab gibt es Funktionen, die dies vermutlich können, allerdings müsstest du dafür die Statistiktoolbox besitzen.

-> http://de.mathworks.com/help/stats/index.html
Code:
normrnd %<- Perzentilen


Zur y-Achse: Logarithmisch scheint die Einteilung nicht zu sein, dann wäre es einfacher, aber mir fällt grad nicht ein, wie es anders sinnvoller geht.
Zusätzlich die Limits für die Achse und die yTicks angeben.
Code:
set(gca, 'yscale', 'log',...  %<- logarithm.
'YTick',[0.1 1 10 40 70 95 99.5]); %<- Beschriftung
axis([0 inf 0 100]); %<- Achsenbegrenzung

_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.02.2016, 15:27     Titel:
  Antworten mit Zitat      
Hallo,

wenn es nicht genau diese Skalierung sein muss:
Code:

Ansonsten wird es mühsamer.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
huenermund_c

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.02.2016, 08:30     Titel:
  Antworten mit Zitat      
Danke Harald! Diese Funktion habe ich gesucht!

Ich kann jetzt meine 9 Datensätze in einem Diagramm darstellen. Ich bin allerdings zu blöd die Formation der einzelnen Daten anzupassen...Ich möchte die Farben und Linien (keine Datenpunkte erwünscht) selbst bestimmen.

Ich habe 2 Bilder angehängt. Auf Bild A ist die gewünschte Formatierung. Auf Bild B die IST-Formatierung.

%Beispiel, wie ich es lösen wollte.... 3 Unterschiedliche Farben und 3 unterschiedliche Stricharten...

probplot('normal',[a b c d e f g h i],'noref','g--','b--','r--','g:','b:','r:','g','b','r');


Würde mich freuen wenn jemand mir erklären kann, wie man die jeweiligen Farben und Stricharten gezielt anpassen kann.

Grüße

B.jpg
 Beschreibung:

Download
 Dateiname:  B.jpg
 Dateigröße:  55.83 KB
 Heruntergeladen:  455 mal
A.jpg
 Beschreibung:

Download
 Dateiname:  A.jpg
 Dateigröße:  70.72 KB
 Heruntergeladen:  472 mal
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.02.2016, 09:06     Titel:
  Antworten mit Zitat      
Hallo,

die Funktion akzeptiert keine zusätzlichen Argumente in der von dir gewünschten Form.

Stattdessen kannst du dir das Handle auf die Linien zurückholen und diese nachträglich anpassen. Wie das geht, siehst du im Beispiel "Test Data for Normal Distribution Using probplot" aus der Doku.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
huenermund_c

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.02.2016, 13:57     Titel:
  Antworten mit Zitat      
Danke für die Antwort.
Den Umgang mit dem function handle kannte ich bisher noch nicht. Ich kann mir nicht erklären wie ich gezielt auf einen der Datensätze das handle lege. In dem Beispiel werden p und t bestimmt und später wieder aufgegriffen. Wofür brauche ich das?
Unten ist mein code mit 2 Datensätzen (data1&data2) abgebildet.


Code:
probplot('normal',[data1 data2],'noref');

t=@(data1);
h=probplot(gca,t);
h.Color='r';
h.LineStyle=':';

s=@(data2);
i=probplot(gca,s);
i.Color='g';
i.Color='--';


Ziel ist also data 1 in rot und gepunktet und data 2 in grün und gestrichelt. Nur leider mache ich Fehler beim Umgang mit den Handles.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.02.2016, 14:50     Titel:
  Antworten mit Zitat      
Hallo,

du kannst dir vom ersten probplot -Befehl eine Rückgabe h zurückholen und dann mit h(1), h(2) etc. arbeiten.

Die weiteren probplot-Befehle sind nicht nötig.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
huenermund_c

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.02.2016, 16:28     Titel:
  Antworten mit Zitat      
Hallo Harald,

bei mir funktioniert es weiterhin leider nicht. Kannst du mir deinen Vorschlag als Matlab Code schreiben, mit den Variablen (data, 1 und data 2)? Ich vermute ich wende das handle und dessen aufruf nicht richtig an...

Vielen Dank[/code]

Code:
probplot('normal',[data1 data2],'noref');

t=@(???);
h(1)=probplot(gca,t);
h(1).Color='r';
h(1).LineStyle=':';

h(2)=probplot(gca,t);
h(2).Color='r';
h(2).LineStyle=':';
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.02.2016, 16:41     Titel:
  Antworten mit Zitat      
Hallo,


Code:
h = probplot('normal',[data1 data2],'noref');

h(1).Color='r';
h(1).LineStyle=':';

h(2).Color='g';
h(2).LineStyle='--';


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
huenermund_c

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.02.2016, 16:51     Titel:
  Antworten mit Zitat      
Hallo Harald,

die Fehlermeldung lautet: "Structure assignment to non structure object"
Error in diagramm (line 40)
h(1).Color='r';

Eine Anpassung der Daten erfolgt leider nicht.

Hast du eine Idee woran das liegen könnte?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.02.2016, 16:57     Titel:
  Antworten mit Zitat      
Hallo,

vermutlich verwendest du eine ältere Version als R2014b. Ich kann nur empfehlen, das bei Fragen dazuzuschreiben, insbesondere wenn es irgendetwas mit Graphik zu tun hat. Am besten registrieren und die Info im Profil ablegen.

Auch in der Online-Doku darauf achten, immer die Doku zum richtigen Release anzusehen.

Das sollte klappen:
Code:
h = probplot('normal',randn(100,2),'noref');

set(h(1), 'Color', 'r');
set(h(1), 'LineStyle', ':');

set(h(2), 'Color', 'g');
set(h(2), 'LineStyle', '--');


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
huenermund_c

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.02.2016, 17:07     Titel:
  Antworten mit Zitat      
Hallo Harald,

es handelt sich um R2013a....

die Formatierung funktioniert jetzt Smile (Siehe Bild im Anhang). Gibt es noch eine Möglichkeit die eigentlichen Messpunkte (Kreise und Kreuze) nicht darzustellen? Aufgrund der hohen Datenmenge und Graphendichte die ich haben werde, würden die einzelnen Punkte nur Verwirrung stiften....

c.jpg
 Beschreibung:

Download
 Dateiname:  c.jpg
 Dateigröße:  65.67 KB
 Heruntergeladen:  447 mal
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.02.2016, 17:19     Titel:
  Antworten mit Zitat      
Hallo,

die Eigenschaft 'Marker' auf 'none' setzen.
Code:
set(h(1), 'Marker', 'none')


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
huenermund_c

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.02.2016, 17:29     Titel:
  Antworten mit Zitat      
Es ist vollbracht....
Vielen Dank für die Mühe! Ganz großes Matlab Exclamation Exclamation Exclamation

Ich wünsche dir ein schönes Wochenende
 
huenermund_c

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.02.2016, 17:47     Titel:
  Antworten mit Zitat      
...ein Problem habe ich leider doch noch....
die Daten 7,8,9 sollen durchgezogene Linien sein... Wenn ich LineStyle weglasse macht Matlab wieder die Markierungen, mit den Dreiecken..... Hatte es mit 'Linestyle,'solid' versucht, aber das geht auch nicht....
Gibt es eine Abkürzung für durchgezogene Graphen? Das steht in der Doku als default drinnen Rolling Eyes


Code:
set(h(1), 'Color', 'g','LineStyle', '--','Marker','none');
set(h(2), 'Color', 'k','LineStyle', '--','Marker','none');
set(h(3), 'Color', 'r','LineStyle', '--','Marker','none');
set(h(4), 'Color', 'g','LineStyle', ':','Marker','none');
set(h(5), 'Color', 'k','LineStyle', ':','Marker','none');
set(h(6), 'Color', 'r','LineStyle', ':','Marker','none');
set(h(7), 'Color', 'g','Marker','none');
set(h(8), 'Color', 'k','Marker','none');
set(h(9), 'Color', 'r','Marker','none');
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.