% Beispiele für 2-dimensionales Plotten
% Autor: Winfried Kernbichler

% Input Variablen
xs = -4*pi;
xe =  4*pi;
anz = 101;
a = 0.03;
xd = (xe-xs) / (anz-1);

% Plot Daten
x = xs:xd:xe;
y = sin(x);
y1 = y .* exp(-a*x.^2);
z = cos(x);
z1 = z .* exp(-a*x.^2);

% Default Plot von zwei Datensätzen
fig1 = figure(1); clf reset;
subplot(2,1,1); % Zwei Subplots unter einander
p1 = plot(x,y);
ax1 = gca; % Aktueller Achsenhandle gespeichert unter ax1
subplot(2,1,2);
p2 = plot(x,y1);
ax2 = gca;
set(fig1,'Color',[0.8 0.8 1]); % Zartes Blau
% RGB-Values Red-Green-Blue between 0 to 1
% [1 1 1] : Weiß
% [0 0 0] : Schwarz

axes(ax1); title('Default Plot');
clc;disp('PAUSE - Bitte Taste druecken!');pause;clc;

% Beschriftung
axes(ax1); % Achse 1 wird Default-Achse gca
xlabel('\alpha');
ylabel('f(\alpha)','Rotation',0); % Default Wert für Drehung ist 90 Grad
t1 = text(pi,0.7,'sin(\alpha)');
set(gca,'XLim',[xs xe],'YLim',[-1.2 1.2]);
set(gca,'Color',[1 1 0.7]); % Gelb

axes(ax2); % Achse 2 wird Default-Achse gca
xlabel('\alpha');
ylabel('f(\alpha)','Rotation',0);
t2 = text(pi,0.7,['exp(-',num2str(a),'\alpha^2)',' sin(\alpha)']);
set(gca,'XLim',[xs xe],'YLim',[-1.2 1.2]);
set(gca,'Color',[1 1 0.7]); % Gelb

axes(ax1); title('Beschriftung');
disp('PAUSE - Bitte Taste druecken!');pause;clc;

% Änderung der Tickmarks
tickvec = xs:pi:xe;          % Im Abstand von pi
tickv = round(tickvec / pi); % Vielfache von pi
for ind = 1:length(tickv)    % Beschriftung -4pi, -3pi, ... in eine Zellen-Array {}
   ind1 = tickv(ind);
   if ind1 == 0
      ticks(ind) = {'0'};    % -1 , 0, 1 sind Ausnahmen
   elseif ind1 == 1,
      ticks(ind) = {'pi'};
   elseif ind1 == -1
      ticks(ind) = {'-pi'};
   else
      ticks(ind) = {[num2str(ind1),'pi']}; 
   end   
end
set(ax1,'XTick',tickvec);    % Position der Ticks
set(ax1,'XTickLabel',ticks); % Beschriftung der Ticks
set(ax2,'XTick',tickvec);    % Position der Ticks
set(ax2,'XTickLabel',ticks); % Beschriftung der Ticks

axes(ax1); title('Geänderte Tickmarks');
disp('PAUSE - Bitte Taste druecken!');pause;clc;

% Eigenschaften der Linien
set(p1,'Color','red');     % Farbe
set(p1,'LineStyle','-');   % Linienstyle -, --, :, .-
set(p1,'LineWidth',1);     % Stärke der Linien
axes(ax1); 

% Das Gleiche für den zweiten Plot
set(p2,'Color','black');
set(p2,'LineStyle','-');
set(p2,'LineWidth',1);
axes(ax2); 

axes(ax1); title('Linieneigenschaften');
disp('PAUSE - Bitte Taste druecken!');pause;clc;

% Austausch von Daten
set(p1,'YData',z);
axes(ax1); 
set(t1,'Position',[1.5 0.4],'String','cos(\alpha)'); % Legende ändern, wenn sich Kurven ändern
set(t1,'FontSize',14,'FontWeight','normal','Color','red');
set(t1,'Rotation',20);

set(p2,'YData',z1);
axes(ax2);
set(t2,'Position',[1.5 0.4],'String',['e^{-',num2str(a),'\alpha^2}','cos(\alpha)']);
set(t2,'FontSize',14,'FontWeight','normal','Color','red');
set(t2,'Rotation',20);
axes(ax1); title('Andere Daten und Text');
disp('PAUSE - Bitte Taste druecken!');pause;clc;

disp('Eigenschaften von Handles mit get, z.B. get(t1)');
a = get(t1)

disp(' ');
disp('PAUSE - Bitte Taste druecken!');pause;clc;
close(fig1);
disp('DANKE');
