MAT04 Grafische Darstellung

Autor Martin Grimmer
Letzte Bearbeitung 21. Jan 2014
Matlab Datei TestdatenV2

Grundlegende Ausgabe von Kurvenverläufen

Grundlegend kann die grafische Darstellung über den Befehl 'plot' erfolgen.

plot(Mean_Fz_100);

Farben

Über die Ergänzung des Eintrages 'Color' kann ein RGB Code angegeben werden, der die Farbe des Graphen festlegt.

plot(Mean_Fz_100,'Color',[0.5 0.5 0.5]);

Mehrere Graphen in einem Plot

Beim Plot einer zweiten Grafik würde der erste Plot überschrieben werden. Um dies zu vermeiden muss der erste über den Befehl 'hold on' beibehalten werden.

plot(Mean_Fz_100,'Color',[0 0 0]);hold on;
plot(Std_Fz_100,'Color',[0.5 0.5 0.5]);

Gitternetzlinien

Ein Gitternetz kann über den Befehl 'grid on' eingeblendet werden.

plot(Mean_Fz_100,'Color',[0 0 0]);
grid on;

Achsenbeschriftung

Die Achsenbeschriftung erfolgt getrennt für die X- und Y Achse. In eckigen Klammern sollte die Einheit ergänzt werden.

plot(Mean_Fz_100,'Color',[0 0 0]);
xlabel('gait cycle [%]');
ylabel('force [N]');

Titel

Ein Titel für die Grafik wird über den Befehl 'title' vergeben.

plot(Mean_Fz_100,'Color',[0 0 0]);
title('Vertical ground reaction forces in running');

Linienstärke

Die Linienstärke der Kurven kann über das Kürzel 'LineWidth' geändert werden.

plot(Mean_Fz_100,'LineWidth',3);

Legende

Eine Legende kann automatisch oder manuell erstellt werden.

Automatik:

plot(Mean_Fz_100,'Color',[0 0 0]);hold on;
plot(Std_Fz_100,'Color',[0.5 0.5 0.5]);
legend('Mean Fz','Std Fz');
Manuell:

Für die manuelle Legende wird erst ein weißes Rechteck mit schwarzem Rand erzeugt. Zusätzlich werden die Linien in entsprechender Farbe und der entsprechende Text eingefügt.

plot(Mean_Fz_100,'Color',[0 0 0]);hold on;
plot(Std_Fz_100,'Color',[0.5 0.5 0.5]);

rectangle('Position',[70,1200,25,300],'Facecolor',[1 1 1],'Edgecolor',[0 0 0]);        %rectangle at position X=70, Y=1200 with a length of 25 and a height of 300, Facecolor defines inner Edgecolor the line color
line([72 76],[1400 1400],'Color',[0 0 0],'LineWidth',3,'LineStyle','-');               %line from [X Min X Max],[Y Min Y Max], LineStyle defines dottet ':', dashed '--' or solid line '-'
line([72 76],[1300 1300],'Color',[0.5 0.5 0.5],'LineWidth',2,'LineStyle','-'); 

text(78,1400,'Mean Fz','FontSize',12);                                                 %Text is displayed at position X=78 and Y= 1400 using a font size of 12
text(78,1300,'Std Fz','FontSize',12);

Achsen

Achsen können über den Befehl axis geändert werden.

plot(Mean_Fz_100,'Color',[0 0 0]);hold on;
axis([0 100 -50 1600]);      %[X Min X Max Y Min Y Max]

Gleichzeitige Ausgabe mehrerer Grafiken

Um mehrere Grafiken gleichzeitig anzuzeigen kann jeder Grafik eine Nummer gegeben werden.

figure(1);
plot(STD_Fz_100,'Color',[0.5 0.5 0.5],'LineWidth',2);
figure(2);
plot(Mean_Fz_100,'k','LineWidth',3); 

Mittelwert und Standartabweichung

Eine sinnvolle Darstellung der Standartabweichung kann wie folgt aussehen. Sie wird in Relation zum Mittelwertverlauf ausgegeben. Dazu wird sie einerseits zum Mittel addiert und zum zweiten subtrahiert. Diese Graphen werden dann ausgegeben.

plot(Mean_Fz_100+STD_Fz_100,'Color',[0.8 0.8 0.8],'LineWidth',2);hold on;
plot(Mean_Fz_100-STD_Fz_100,'Color',[0.8 0.8 0.8],'LineWidth',2);
plot(Mean_Fz_100,'k','LineWidth',3); 

Optische Darstellung von Extremwerten

Um spezille Punkte wie Maxima und Minima zu beschreiben empfehlen sich Markerpunkte. Vorerst muss das Maximum ermittelt werden. Zusätzlich benötigt man die Position des Maximums. Dies erfolgt über den Befehl find. Bei diesem wird der Zielwert mit der Ursprungsvariable verglichen um die Position zu ermittlen.

Max_Mean_Fz_100=max(Mean_Fz_100);                           %get maximum value 
Pos_Max_Mean_Fz_100 = find(Mean_Fz_100 == Max_Mean_Fz_100); %get position of maximum value

%Plot circle at maximum value
plot(Mean_Fz_100,'k','LineWidth',3);
plot(Pos_Max_Mean_Fz_100,Max_Mean_Fz_100,'o','Markersize',12,'LineWidth',5,'MarkerEdgeColor',[0.2 0.2 0.2]);
plot(Pos_Max_Mean_Fz_100,Max_Mean_Fz_100,'o','Markersize',9,'LineWidth',4,'MarkerEdgeColor',[0.9 0.9 0.9]);

Kombinierte Anzeige aller gelisteten Funktionen

Eine vollständige Grafik könnte dann wie folgt aussehen.

figure(1);
plot(Mean_Fz_100+STD_Fz_100,'Color',[0.8 0.8 0.8],'LineWidth',2);hold on;
plot(Mean_Fz_100-STD_Fz_100,'Color',[0.8 0.8 0.8],'LineWidth',2);
plot(Mean_Fz_100,'k','LineWidth',3); 
grid on;

axis([0 100 -50 1600]);  

Max_Mean_Fz_100=max(Mean_Fz_100);             %get maximum value 
Pos_Max_Mean_Fz_100 = find(Mean_Fz_100 == Max_Mean_Fz_100); %get position of maximum value

%Plot circle at maximum value
plot(Pos_Max_Mean_Fz_100,Max_Mean_Fz_100,'o','Markersize',12,'LineWidth',5,'MarkerEdgeColor',[0.2 0.2 0.2]);
plot(Pos_Max_Mean_Fz_100,Max_Mean_Fz_100,'o','Markersize',9,'LineWidth',4,'MarkerEdgeColor',[0.9 0.9 0.9]);

rectangle('Position',[70,1100,25,400],'Facecolor',[1 1 1],'Edgecolor',[0 0 0]);
line([72 76],[1400 1400],'Color',[0 0 0],'LineWidth',3,'LineStyle','-');         text(78,1400,'Mean Fz','FontSize',12);        %line from [X Min X Max],[Y Min Y Max]
line([72 76],[1300 1300],'Color',[0.8 0.8 0.8],'LineWidth',2,'LineStyle','-');   text(78,1300,'Std Fz','FontSize',12);
plot(74,1200,'o','Markersize',12,'LineWidth',5,'MarkerEdgeColor',[0.2 0.2 0.2]); text(78,1200,'Max Fz','FontSize',12);
plot(74,1200,'o','Markersize',9,'LineWidth',4,'MarkerEdgeColor',[0.9 0.9 0.9]);

%Labeling
xlabel('gait cycle [%]','FontSize',12);
ylabel('force [N]','FontSize',12);
title('Vertical ground reaction force during the gait cycle in running','FontSize',12);

Balkendiagramme unter Matlab

Balkendiagramme werden in Matlab über den Befehl bar erzeugt. Die Füllfarbe wird über 'Facecolor' die Rahmenfarbe über 'Edgecolor' angegeben. Die Linienstärke des Rahmens über 'LineWidth'.

figure(2);
bar(Mean_Max_Fz_100,'FaceColor',[0.5 0.5 0.5],'EdgeColor',[0,0,0],'LineWidth',3);
ylabel('maximum GRF [N]');                                                          %define label
grid on;                                                                            %grid for X and Y axes
set(gca,'XTICK',[]);                                                                %labeling of the X axis and the grid for the X axis is removed
axis([0.3 2.7 0 2000]);                                                             %defining new axes
text(0.85,-100,'Subj. 1');                                                          %put a text to specify two compared conditions
text(1.85,-100,'Subj. 2');
Um die Standartabweichung einzubinden kann man den Befehl errorbar nutzen. Über den Befehl 'LineWidht' lässt sich allerdings nur der vertikale Balken des Fehlers vergrößern. Beide horizontale Balken müssen von Hand hinzugefügt werden. Weitere Methoden dazu sind im Internet zu finden. Da der erste Balken bei X=1 und der zweite bei X=2 ausgegeben wird werden die horizontalen Linien jeweils von 0.9 bis 1.1 und 1.9 bis 2.1 ausgegeben.
hold on;
h=errorbar(Mean_Max_Fz_100,Std_Max_Fz_100,'Color',[0 0 0],'LineWidth',3);set(h,'linestyle','none','MarkerSize',50);                          %no line in between both error values
line([0.9 1.1],[Mean_Max_Fz_100(1)+Std_Max_Fz_100(1) Mean_Max_Fz_100(1)+Std_Max_Fz_100(1)],'Color',[0 0 0],'LineWidth',3,'LineStyle','-');
line([0.9 1.1],[Mean_Max_Fz_100(1)-Std_Max_Fz_100(1) Mean_Max_Fz_100(1)-Std_Max_Fz_100(1)],'Color',[0 0 0],'LineWidth',3,'LineStyle','-');

line([1.9 2.1],[Mean_Max_Fz_100(2)+Std_Max_Fz_100(2) Mean_Max_Fz_100(2)+Std_Max_Fz_100(2)],'Color',[0 0 0],'LineWidth',3,'LineStyle','-');
line([1.9 2.1],[Mean_Max_Fz_100(2)-Std_Max_Fz_100(2) Mean_Max_Fz_100(2)-Std_Max_Fz_100(2)],'Color',[0 0 0],'LineWidth',3,'LineStyle','-');

matlab/mat04.txt · Zuletzt geändert: 12.10.2015 15:17 von Dario Tokur
GNU Free Documentation License 1.3
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0