Ich versuche eine modifizierte Version von datetick2 von der MATLAB FEX zu implementieren. Wenn Plots in einem kleinen Datumsbereich gezoomt werden, wird der Tag/Monat/Jahr usw. nicht angezeigt, je nach dem Bereich der Zeiten in der Zeichnung. Ich möchte ein 'dd-mmm-yyyy' formatiertes Startdatum als Anmerkung in die untere linke Ecke der Figur setzen. Kein Problem, das ist erledigt.Wie finde ich ein Anmerkungshandle in MATLAB?
Als nächstes möchte ich es aktualisieren, wenn der Benutzer einen anderen Datumsbereich mit der Zoom-Funktion auswählt. Anstatt mehr Handles zu übergeben, möchte ich nur die Annotation finden. findobj scheint jedoch nicht für den hggroup-Typ zu funktionieren, unter dem die Anmerkungen fallen. Benutze ich es falsch?
Hier ist ein Codebeispiel:
>> times=now-[50:-5:0];
>> days=times-times(1);
>> plot(times,days)
>> datetick2()
>> xlabel('Date')
>> ylabel('Days')
>> title('Example')
>> initialdate=datestr(min(get(gca,'xlim')),'dd-mmm-yyyy');
>> txt=annotation('textbox', [.01,.01,.1,.05],...
'string', initialdate,...
'Linestyle','none');
>>
>>
>> findobj('type','hggroup')
ans =
Empty matrix: 0-by-1
>> get(txt,'type')
ans =
hggroup
>> findobj('type','axes')
ans =
270.0034
Wie Sie sehen können, ist findobj nicht funktioniert, aber wenn ich den Griff ich im Arbeitsbereich definiert verwenden, erscheint der Typ direkt aus als hggroup
.
Yup, das war es. Ich habe der Anmerkung auch eine Tag-Eigenschaft hinzugefügt, um die Dinge noch einfacher zu machen. – Doresoom