%% Graphik Teil I
%
clear
close all

%% Einfache Kurvenplots:
%
x = 0:0.05:5;
y=sin(x.^2);
plot(x,y)

% show graph window
shg

%% Mehrere Kurven in einer Graphik:
%
% hold, hold on, hold off
%
clc
clf
plot(x,y)

% Graphik festhalten
hold on
plot(x,cos(x)) 

% Graphik wieder freigeben
hold off

%% Einstellungen I
%
%  - Farbe der Linien
%  - Art der Linien
%    . nur die Punkte einzeichnen
%    . gepunktet, durchgezogen, gestrichelt
%
plot(x,y,'r--')
hold on
plot(x,cos(x),'g+')
hold off

clc
help plot

%% Dicke der Linien
%
plot(x,y,'LineWidth',10)

%% Groesse der Markierungen
%
plot(x,y,'*-','Markersize',20)

%% Art der Markierung
%
plot(x,y,'s-','Markersize',20,'LineWidth',2,'MarkerFaceColor','g')

%% Gestaltung der Markierungen
%
plot(x,y,'s-','Markersize',20,'MarkerFaceColor','g','MarkerEdgeColor','r')

%% Mehrere Plots in einem Aufruf von plot
%  default: automatische Farbwahl
%
plot(x,sin(x),x,cos(x))

%% Farb- und Markereinstellung fuer jede Kurve
%
plot(x,sin(x),'m-.',x,cos(x),'ko')

%% Einstellungen II
%
% get: Anzeige der Einstellungen
%
h=plot(x,sin(x),'m-.',x,cos(x),'ko')
%%
get(h(1))
set(h(1),'Marker','d','MarkerSize',10)
%% Beschriftung der Graphik
%      - Ueberschrift (Titel)
%      - Achsen
%      - Legende (ausschalten mit legend off)
%
title('zwei Kurven')
xlabel('x-Achse')
ylabel('y-Achse')
legend('sin(x)','cos(x)')
shg

%% Veraendern der Achsen: Skalierung und Erscheinen
%
xlim([1 4])
ylim([-2 2])

%% Keine Achsen
%
axis off
shg

%% Doch wieder Achsen
%
axis on
shg

%% Andere Skalierung der Achsen 
%   axis([xmin xmax ymin ymax])
%
axis([0 4 -3 3])
shg

%% Alles wieder wie am Anfang (automatisch)
%
axis auto
shg

%% Quadratisches Bild
%
axis square
shg

%% Alte Bildgroesse wiederherstellen
%
axis normal
shg

%% Logarithmische und halblogarithmische Plots
%
%  (Eignet sich besonders zur Darstellung von Fehlern)
%
%  semilogx, semilogy, loglog
%
n=1:2000;
x = (1+1./n).^n;
plot(exp(1)-x);
shg

%% y-Achse logarithmisch
%
semilogy(exp(1)-x);
shg

semilogy(exp(n./100));
shg;

%% Andere Arten von Plots
%
%  - Histogramm (bar)
%  - Stufenfunktion (stairs)
%  - stem
%
x = -3:0.2:3;                
bar(x,exp(-x.*x));
shg
%%
bar([1 2 3])
shg
%%
stairs(x,exp(-x.^2))
shg
%%
stem(x,sin(x),'*r--')
shg

%% Oeffnen eines neuen Graphikfensters
%
%  - Aktivieren mit figure
%  - Schliessen mit close
%
close all
figure
%%
figure(1)
%%
figure(2)

%% Kurven im Raum
%
%  - plot3(x(t),y(t),z(t))
%  - Titel und Achsenbeschriftung wie bisher
%
close all
x=linspace(0,10*pi);
plot3(sin(x),cos(x),x)
title('Spirale')
xlabel('sin(x)')
ylabel('cos(x)')
zlabel('x')
shg

%% Einzeichnen eines Gitters
%
% grid
%
grid on
shg

%% Graphen reellwertiger Funktionen in zwei Variablen
%
% - meshgrid: 2d-Gitter erzeugen
% - mesh: Plot einer Funktion in zwei Variablen als Flaeche
%
close all
x = linspace(0,2*pi);
[X,Y] = meshgrid(x,x);
mesh(X,Y,sin(X).*sin(3/2*Y));
axis tight

%% - meshc mit Hoehenlinien (contour)
figure
x = linspace(-3,3,30);
[X,Y] = meshgrid(x,x);
Z = peaks(X,Y)
meshc(X,Y,Z);
axis([-3 3 -3 3 -10 5])

%% - surf als Flaeche
figure
surf(X,Y,Z);
%%
figure
surf(X,Y,Z);
shading interp


