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

yAchse links und rechts vom Plot skalieren & beschriften

 

fjae
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 02.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.03.2008, 09:32     Titel: yAchse links und rechts vom Plot skalieren & beschriften
  Antworten mit Zitat      
Hallo,
ich würde gerne wissen, wie ich die y-Achse eines Plots auf der linken und rechten Seite des Plots verschieden skalieren und beschriften kann, da ich zwei verschiedene Datensätze mit unterschiedlichen Einheiten in dem gleichen Plot darstellen möchte.

Danke für Eure Hilfe!
Ciao,
fjae
Private Nachricht senden Benutzer-Profile anzeigen


steffi
Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 07.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.03.2008, 09:59     Titel:
  Antworten mit Zitat      
Vielleicht hilft dir das hier:

http://www.gomatlab.de/plot-mit-2-u.....lichen-y-achsen-t696.html

vg
_________________

Wenn ich bei der Arbeit mit Computern eins gelernt habe dann das ich einem Computer nur soweit traue wie ich ihn werfen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 26.03.2008, 09:59     Titel:
  Antworten mit Zitat      
Hi,

schau Dir mal das Beispiel in der Hilfe zu
Code:
an.
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
fjae
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 02.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.03.2008, 16:30     Titel:
  Antworten mit Zitat      
Im Prinzip soll es so sein, wie plotyy, jedoch ist bei mir die eine function mit der bar funktion geplottet. Jemand eine Idee wie man das lösen kann?
Grüße,
fjae
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 26.03.2008, 17:12     Titel:
  Antworten mit Zitat      
Hier am Beispiel mit der Punktewolke aus dem anderen Thread.
Über denn Sinn lässt sich streiten, zu bemerken ist nur, dass man mit
Code:
auch Häufigkeiten ausrechnen und anschließend mit
Code:
plotten kann:

Code:
clear all; clc;
x=100*rand(1,20);
y=100*rand(1,20);

sx=sum(x)/length(x)
sy=sum(y)/length(y)

h1 = line(x,y,'LineStyle','none','Marker','o');
ax1=gca;
ax2 = axes('Position',get(ax1,'Position'));      
n= hist(x);
h2=bar(n,'Parent',ax2);
set(ax2,'XTick',[]);
set(ax2,'YLim',[0 10]);
set(ax2,'YAxisLocation','right','Color','none');


Das Beispiel stammt im Wesentlichen von hier: http://www.mathworks.com/access/hel.....ating_plots/f1-11215.html
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 26.03.2008, 17:42     Titel:
  Antworten mit Zitat      
Hallo,

nschlange hat schon zwar die Frage vor mir beantwortet, aber vielleicht kannst du es kombinieren.
Ich hab es damals auch gebraucht und habe es auch mit 2 Axes gelöst.
Ich kannte damals diesen Forum noch nicht musste es selber machen.
Deswegen habe ich damals nicht mit Überdeckung der Axes gelöst, sondern mit einem zusätzlichen ganz schmalen Axes


Habe aus meinem Programm ein kleiner Beispiel gebastelt
vielleicht hilft es dir weiter.

Code:

classnames={'a','b','c','d','e'};
maxSamples= [206,613,1348,1290,3073];
barval=[0.9854,  0,        0;
    0.7651,   0.1207,   0.0457;
    0.8435,   0.0512,   0.0134;
    0.8744,   0.0767,   0.0109;
    0.8415,   0.0596,   0.0091];
figure;
%
%%% Erstes Axes so definieren
% damit noch einwenig Platz rechts bleibt für 2.Axes  
h1=axes('position',[.1  .1  .8  .8]);
barh(h1,barval,'stack');
ylim(h1,[0 length(classnames)+1]);
set(h1,'YTick',(1:length(classnames)));
set(h1,'YTickLabel',classnames,'YDir','reverse');
%
%%%% Zweites Axes ganz dünn definieren
h2=axes('position',[.9  .1  .001  .8]);
% Tickposition Rechts
set(h2,'YAxisLocation','right');
% gleiche Wert eingabe wie für Erstes Axes
ylim(h2,[0 length(classnames)+1]);
set(h2,'YTick',(1:length(classnames)));
%
% Neue Ticknamen Setzen
set(h2,'YTickLabel',maxSamples,'YDir','reverse');
%
xlim(h1,[0 1])
set(h1,'XTick',[0 , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]')
 
Private Nachricht senden Benutzer-Profile anzeigen
 
fjae
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 02.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.03.2008, 11:09     Titel:
  Antworten mit Zitat      
Herzlichen dank für Eure Antworten! Hat mir sehr weitergeholfen! Eine kleine Anmerkung noch zu
set(ax2,'YLim',[0 10]);
wichtig war noch, dass ich die X-Achsen beider Plots gleich skaliere, da sonst die beiden Kurven nicht richtig übereinander lagen.

dh. nach dem ersten plot

axis([xbegin, xende, ybegin, yende])

und dann bei dem zweiten plot (bar)

set(ax2,'XTick',[]);
set(ax2,'XLim',[ xbegin xende]);
set(ax2,'YLim',[0 10]);

Grüße,
fjae
Private Nachricht senden Benutzer-Profile anzeigen
 
seackone
Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 30.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2013, 14:59     Titel:
  Antworten mit Zitat      
Hi,
ich habe das gleiche Problem, dass ich die rechte Y Achse gern beschriften würde. Jetzt bin ich nach nschlange seinem Tip vorgegangen und es hat auch funktioniert! Vielen Dank erstmal dafür!

Allerdings habe ich noch ein wenig probleme die Funktionen zu halten.

so sieht ersmal mein Plotbefehl aus:

Code:
subplot(2,1,1)
semilogy(short);

ax1=gca;
ylabel('Watts m^-^2');

set(ax1,'YLim',([1.0E-9 1.0E-2]));
ax2 = axes('Position',get(ax1,'Position'));

semilogy(long,'color','red');

set(ax2,'YAxisLocation','right','Color','none','XTick',[],'YLim',([1.0E-9 1.0E-2]),...
   'YTick',[1e-09 5e-09 1e-08 5e-08 1e-07 5e-07 1e-06 5e-06 1e-05 5e-05 1e-04 5e-04 1e-03 5e-03 1e-02],...
   'Yticklabel',{' ';' ';' ';' A';' ';' B';' ';' C';' ';' M';' ';' X';' ';' ';' '} );

 


Anschließend folgen noch einige If-Abfragen die je nach Datum, Werte usw noch gewisse Zeilen zum Plot hinzufügen. Hier ein Beispiel:

Code:
xlabel(['Last Update: ' , last_update_year, '-', last_update_month, '-', last_update_day,...
    '   ', datestr(last_update_time, ' HH:MM:SS '), ' UTC ']);
   
set(ax1,'xlim',[0 288],'XTick',0:36:288, 'xticklabel',...
        {datestr_date_today;' ';' ';' ';' ';' ';' ';' ';datestr_date_tomorrow},'YGrid','on');

set(ax2,'xlim',[0 288]);





Mein erstes Problem ist, dass über eine Funktion eine Extremstelle in einem gewissen Zeitraum markiert wird. Es wird dann beispielsweise ein maximum markiert. Allerdings verschwindet der Plot "long" dann einfach. Ist natürlich etwas ungünsig Wink Hab schon sämtliche hold befehle ausprobiert, aber entweder ist alles weg oder nur der rote Graph.

Des weiteren ist die Beschriftung der X-Achse zu nahe an der Achse dran.
Ich denke das liegt daran, dass AX2 keinen Xtick hat (da Plot 1 und Plot 2 die gleiche X achse haben), sich die Achsenbeschriftung aber auf Plot2 bezieht. Ich habe schon probiert das irgendwie mit:

set(ax1,'xlabel','...');

zu ändern, bekomme aber immer Fehlermeldungen.
Hat vielleicht jemand einen Tip für mich?
Oder soll ich sogar ganz anders vorgehen?

Habe zwei Messwertreihen.. Beide sollen logarithmisch an der Y achse angezeigt werden und haben auch den gleichen Bereich. An der linken Achse steht lediglich der Zahlenwert, rechts einfach nur eine klassifizierung der Werte. Mehr nicht.

Gruß

Edit: Achso, x und rechte y Achsenbeschriftug verschwindet ebenfalls habe ich gerade gemerkt, sobald die extremwerte markiert werden. Es gibt also allen Anschein nach ein Problem AX2 mit dem Plot zu halten.
Private Nachricht senden Benutzer-Profile anzeigen
 
seackone
Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 30.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.11.2013, 12:50     Titel:
  Antworten mit Zitat      
Hi, ich nochmal!
Nun habe ich alles über den Haufen geworfen und das Ganze mit plotyy probiert. Klappt auch wunderbar!

Code:
subplot(2,1,1);

[AX,H1,H2] = plotyy ([1:length(short)],short,[1:length(long)],long,'semilogy');

legend({'GOES15 0,5 - 4,0A','GOES15 1,0 - 8,0A'},'Location','NorthWest');

set(get(AX(1),'ylabel'),'String','Watts m^-^2');

set(AX(1),'ycolor','black','ylim',[1.0E-9 1.0E-2],'YTick',[1e-09 1e-08 1e-07 1e-06 1e-05 1e-04 1e-03 1e-02]);

set(AX(2),'XTick',[],'YLim',([1.0E-9 1.0E-2]),'ycolor','black',...
   'YTick',[1e-09 5e-09 1e-08 5e-08 1e-07 5e-07 1e-06 5e-06 1e-05 5e-05 1e-04 5e-04 1e-03 5e-03 1e-02],...
   'Yticklabel',{' ';' ';' ';'  A';' ';'  B';' ';'  C';' ';'  M';' ';'  X';' ';' ';' '} );

set(H1,'color','blue');
set(H2,'color','red');



und dann kommen ebend wieder in den ganzen if - Abfragen noch teile dazu:


Code:
xlabel(['Last Update: ' , last_update_year, '-', last_update_month, '-', last_update_day,...
    '   ', datestr(last_update_time, ' HH:MM:SS '), ' UTC ']);

set(AX(2),'xlim',[0 288]);

set(AX(1),'xlim',[0 288],'XTick',0:36:288, 'xticklabel',...
        {datestr_date_today;' ';' ';' ';' ';' ';' ';' ';datestr_date_tomorrow},'YGrid','on');



So.. Also wie gesagt, klappt erstmal. Das Problem mit der X-Achsenbeschriftung hat sich dadurch erledigt. Das stimmt jetzt soweit.
Allerdings habe ich jetzt nach wie vor das Problem, dass mit "hold on" nur der blaue Graph gehalten wird und der rote verschwindet. Langsam weis ich nicht weiter..
Also grundsätzlich werden beide Graphen geplottet. Nun habe ich allerdings verschiedene Funktionen, wo ich mir zb die Messwerte der letzten 90 Tage anschauen kann. D.h. ich kann immer vor und zurück blättern. An dieser Stelle funktioniert auch alles. Doch sobald ich Extremwerte markieren möchte, tritt dieses Problem auf.
Die Funktionsweise ist an der Stelle recht banal. Es wird in einem gewissen Zeitraum nach dem Maximum gesucht. Es wird also mit dem max() Befehl die Messwerte abgesucht und bei dem Maximum wird der Wert zum gewissen Zeitpunkt mit einem Punkt zusätzlich in subplot(2,1,1) eingetragen. Da passiertes dann, dass ein Graph verschwindet, der andere allerdings noch angezeigt wird.
Hat dann vielleicht jemand irgend einen Tipp?

Gruß

Edit: Achso, rechte Y - Achsenbeschrifung, ytick usw verschwindet dann auch..
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 29.11.2013, 14:32     Titel:
  Antworten mit Zitat      
Hallo

ich glaube die Graphen verschwinden nicht, sondern liegen übereinander.
Eventuell anders skalieren.


so liegen die Graphen übereinander:
Code:

short = 1:10
long = 10:10:100
[AX,H1,H2] = plotyy ([1:length(short)],short,[1:length(long)],long,'semilogy');

 


so z.B nicht:
Code:

short = 1:10
long = linspace(1,100,10)
[AX,H1,H2] = plotyy ([1:length(short)],short,[1:length(long)],long,'semilogy');

 
Private Nachricht senden Benutzer-Profile anzeigen
 
seackone
Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 30.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.11.2013, 18:01     Titel:
  Antworten mit Zitat      
Vielen Dank für deine Antwort!
Ich habe auch schon vermutet das die beiden übereinander liegen, daher hab ich es nochmal mit plotyy probiert.
Eigentlich bin ich davon ausgegangen, dass plotyy ein Plot mit 2 Graphen darstellt. In meinem ersten Versuch sah es für mich eher danach aus, dass ich zwei Plots übereinanderlege.
Allerdings ist ja nicht nur das der Graph verschwindet sondern auch alle vorgenommenen Einstellungen zur rechten Y-Achse.

Ich wüsste auch nicht wie ich das anders Skalieren soll, da es sich um zwei Messwertereihen handelt, bei denen zur gleichen Zeit die Leistungsdichte aufgenommen wurde. Lediglich die Frequenz unterscheidet sich.
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 29.11.2013, 19:21     Titel:
  Antworten mit Zitat      
Hallo

bitte ein Lauffähiges Beispiel zur Verfügung stellen, dazu Daten für short und long nötig.
Private Nachricht senden Benutzer-Profile anzeigen
 
seackone
Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 30.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.11.2013, 20:55     Titel:
  Antworten mit Zitat      
Hallo, also die Messwerte kann ich nicht ganz so einfach zur Verfügung stellen, da diese aus einer Textdatei gewonnen werden und das hier evtl. den Rahmen sprengen würde. Das sind dann immer maximal 864 Werte für short und long.
Ich werde aber gleich mal ein Script machen, in extrem abgewandelter Form das etwa 10 Manuel generierte Werte zur Verfügung stellt, diese Plotter und auch einen Pushbutton zur Maximafindung beinhaltet.
Ich probiere das so kurz wie möglich zu halten, aber dennoch die Funktionsweise komplett rüberzubringen.
Aber paar Minuten brauche ich noch Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
seackone
Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 30.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.11.2013, 22:29     Titel:
  Antworten mit Zitat      
So sorry, hat einen Moment gedauert und ist leider doch etwas länger geworden. Aber nun kann man eigentlich jeden Schritt besser erklären und nachvollziehen.
Hier erst einmal der erste Code:

Code:
clc
clear

short = [1.04e-08;1.41e-08;1.05e-07;1.18e-06;1.12e-07;1.02e-08;1.04e-09;1.00e-09;1.06e-07;1.74e-08];
long = [1.04e-06;1.41e-04;1.05e-07;1.18e-06;1.12e-06;1.02e-06;1.04e-06;1.00e-07;1.06e-07;1.74e-07];
type = [1 0 0];


formatout = 'mmm dd';

today_num = floor(datenum(now));
datestr_date_today = datestr(today_num,formatout);
datestr_date_tomorrow = datestr(today_num+1,formatout);


%___________________Figur Plotten____________________________


plot= figure(1);
set(plot,'NumberTitle','off','Name',...
    'Test','units','normalized','outerposition',[0 0 1 1])

subplot(2,1,1);

[AX,H1,H2] = plotyy ([0:length(long)-1],long,[0:length(short)-1],short,'semilogy');

hold on;

set(get(AX(1),'ylabel'),'String','Watts m^-^2');
set(AX(1),'ycolor','black','ylim',[1.0E-9 1.0E-2]);
set(AX(1),'YTick',[1e-09 1e-08 1e-07 1e-06 1e-05 1e-04 1e-03 1e-02]);

set(AX(2),'XTick',[],'YLim',([1.0E-9 1.0E-2]),'ycolor','black',...
   'YTick',[1e-09 5e-09 1e-08 5e-08 1e-07 5e-07 1e-06 5e-06 1e-05 5e-05 1e-04 5e-04 1e-03 5e-03 1e-02],...
   'Yticklabel',{' ';' ';' ';'  A';' ';'  B';' ';'  C';' ';'  M';' ';'  X';' ';' ';' '} );

set(H1,'color','red');
set(H2,'color','blue');


%___________________IF - Abfragen____________________________

if type == [1 0 0]
   
    xlabel(['Last Update:' datestr(now)]);

set(AX(2),'xlim',[0 9]);

set(AX(1),'xlim',[0 9],'XTick',0:9, 'xticklabel',...
        {datestr_date_today;' ';' ';' ';' ';' ';' ';' ';' ';datestr_date_tomorrow},'YGrid','on');

title(['Begin:' datestr(today_num) ' 0000 UTC '], 'fontsize', 16);

end


short und long sind meine Messwerte. Diese habe ich jetzt für das Beispiel manuell generiert. type ist eigentlich erstmal egal.. Ich habe das jetzt auch manuell festgelegt, normalerweise wird diese Variable anhand der verschiedener Parameter ermittelt. Ich habe das jetzt auch nur mit reingenommen, da sich eine IF-Abfrage auf den type bezieht, welche wiederum verschiedene Informationen zum Plot hinzufügt.
Nach dem plotyy -Befehl folgt erstmal hold on, da sonst beim Ausführen des zweiten Codes eine neue Figure erstellt wird, was ja nun nicht das Ziel ist.

Code:
today_num = floor(datenum(now));
type = [1 0 0];

f = figure('ToolBar', 'None', ...
  'MenuBar', 'None', ...
  'Resize', 'off', ...
  'Color',[0.941 0.941 0.941],...
  'Name', 'Peakfinder', ...
  'NumberTitle', 'off', ...
  'Units','Normalized','Position',[0.347 0.383 0.3 0.2]);

annotation(f,'textbox', [.05 .85 .95 .1], 'EdgeColor', 'none', 'Tag' , 'Peakfinder_Headline', 'string',...
    ['Figure wird über GUI aufgerufen und bietet verschiedene Auswahlmöglichkeiten '...
    'Gleichzeitig wird der erste Peak dargestellt']);


if type == [1 0 0]
   
[value,index] = max(long(1:10));
   
day_minute = today_num * 24 * 60;
day_minute = day_minute + (index-1)*5;
day_first_date = day_minute/24/60;

day_first_date = datestr(day_first_date);
value_str = num2str(value);

annotation(f,'textbox', [.05 .5 .95 .1], 'EdgeColor', 'none', 'Tag' , 'Peakfinder_Display', 'string',...
    ['Maximum found at ' day_first_date ' with ' value_str ' Watt / m^2.']);


figure(1);
subplot(2,1,1);
semilogy(index-1,value,'marker','.','Tag' , 'Peakfinder_Marker','markersize',15,'MarkerEdgeColor',[0 0 0]);

set(f,'Visible','on');

end

 


Der zweite Code (wieder sehr stark vereinfacht) wird über eine GUI aufgerufen. Es öffnet sich die Figure "Peakfinder", in der man normalerweise verschiedene Auswahlmöglichkeiten hat (next peak, previous peak, cancel).. In dieser Figure wird dann normalerweise auch der Zeitraum der Suche nach dem Maximum angegeben, zu welcher Zeit eins gefunden wurde und mit welcher Leistungsdichte. Aber da habe ich jetzt auch größtenteils drauf verzichtet.

Mein Problem wird allerdings deutlich:
Beim Ausführen des Skriptes wird das Maximum gesucht, gefunden und in figure(1) markiert. Nur verschwindet der benötigte Graph, der andere bleibt allerdings stehen. Die Markierung der Y-Achse.. ytick, yticklabel usw. ist nicht mehr vorhanden.

So ich hoffe es sieht jemand durch Wink

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 02.12.2013, 15:17     Titel:
  Antworten mit Zitat      
Hallo

das liegt an dem zweiten Aufruf des SUBPLOT-Befehls.
Wenn man SUBPLOT nicht die Axes mitteilt, löscht SUBPLOT einfach die zweite Axes.
Auf jedenfall musst dem SUBPLOT dies Axes mitteilen: subplot(AX(1));



Code:


short = [1.04e-08;1.41e-08;1.05e-07;1.18e-06;1.12e-07;1.02e-08;1.04e-09;1.00e-09;1.06e-07;1.74e-08];
long  = [1.04e-06;1.41e-04;1.05e-07;1.18e-06;1.12e-06;1.02e-06;1.04e-06;1.00e-07;1.06e-07;1.74e-07];
type  = [1 0 0];


formatout = 'mmm dd';

today_num = floor(now);
datestr_date_today = datestr(today_num,formatout);
datestr_date_tomorrow = datestr(today_num+1,formatout);


% ___________________Figur Plotten____________________________


hfig = figure(1);
set(hfig,'NumberTitle','off','Name',...
   'Test','units','normalized','outerposition',[0 0 1 1])

subplot(2,1,1);

[AX,H1,H2] = plotyy ([0:length(long)-1],long,[0:length(short)-1],short,'semilogy');
hold on;


set(get(AX(1),'ylabel'),'String','Watts m^-^2');
set(AX(1),'ycolor','black','ylim',[1.0E-9 1.0E-2]);
set(AX(1),'YTick',[1e-09 1e-08 1e-07 1e-06 1e-05 1e-04 1e-03 1e-02]);

set(AX(2),'XTick',[],'YLim',([1.0E-9 1.0E-2]),'ycolor','black',...
   'YTick',[1e-09 5e-09 1e-08 5e-08 1e-07 5e-07 1e-06 5e-06 1e-05 5e-05 1e-04 5e-04 1e-03 5e-03 1e-02],...
   'Yticklabel',{' ';' ';' ';'  A';' ';'  B';' ';'  C';' ';'  M';' ';'  X';' ';' ';' '} );

set(H1,'color','red');
set(H2,'color','blue');


% ___________________IF - Abfragen____________________________

if isequal(type, [1 0 0])
   
   xlabel(['Last Update:' datestr(now)]);
   
   set(AX(2),'xlim',[0 9]);
   
   set(AX(1),'xlim',[0 9],'XTick',0:9, 'xticklabel',...
      {datestr_date_today;' ';' ';' ';' ';' ';' ';' ';' ';datestr_date_tomorrow},'YGrid','on');
   
   title(['Begin:' datestr(today_num) ' 0000 UTC '], 'fontsize', 16);
   
end




today_num = floor(now);
type      = [1 0 0];

f = figure('ToolBar', 'None', ...
   'MenuBar', 'None', ...
   'Resize', 'off', ...
   'Color',[0.941 0.941 0.941],...
   'Name', 'Peakfinder', ...
   'NumberTitle', 'off', ...
   'Units','Normalized','Position',[0.347 0.383 0.3 0.2]);

annotation(f,'textbox', [.05 .85 .95 .1], 'EdgeColor', 'none', 'Tag' , 'Peakfinder_Headline', 'string',...
   ['Figure wird über GUI aufgerufen und bietet verschiedene Auswahlmöglichkeiten '...
   'Gleichzeitig wird der erste Peak dargestellt']);


if isequal(type, [1 0 0])
   
   [value,index] = max(long(1:10));
   
   day_minute = today_num * 24 * 60;
   day_minute = day_minute + (index-1)*5;
   day_first_date = day_minute/24/60;
   
   day_first_date = datestr(day_first_date);
   value_str = num2str(value);
   
   annotation(f,'textbox', [.05 .5 .95 .1], 'EdgeColor', 'none', 'Tag' , 'Peakfinder_Display', 'string',...
      ['Maximum found at ' day_first_date ' with ' value_str ' Watt / m^2.']);
   
   
   % figure(hfig);
   %   statt  subplot(2,1,1);    subplot(AX(1)); verwenden
   % besser damit das Fenster nicht immer in Vordergrund springt
   set(0, 'CurrentFigure', hfig)
   set(hfig, 'CurrentAxes', AX(1))
   semilogy(index-1,value,'marker','.','Tag' , 'Peakfinder_Marker','markersize',15,'MarkerEdgeColor',[0 0 0]);
   
   set(f,'Visible','on');
   
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
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.