J'essaye de mettre en application une version modifiée de datetick2 du MATLAB FEX. Lorsque les parcelles sont agrandies sur une petite plage de dates, le jour/mois/année, etc. n'est pas affiché, en fonction de la plage de temps dans la parcelle. Je voudrais mettre une date de début formatée 'jj-mmm-aaaa' comme une annotation dans le coin inférieur gauche de la figure. Pas de problème, c'est fait.Comment trouver une poignée d'annotation dans MATLAB?
Cependant, je veux maintenant le mettre à jour si l'utilisateur sélectionne une plage de dates différente avec la fonction de zoom. Au lieu de passer plus de poignées, je veux juste trouver l'annotation. Cependant, findobj ne semble pas fonctionner pour le type hggroup, qui correspond aux annotations. Est-ce que je l'utilise mal?
Voici un exemple de code:
>> 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
Comme vous pouvez le voir, findobj ne fonctionne pas, mais si j'utilise la poignée I définie dans l'espace de travail, le type pops droit comme hggroup
.
Ouais, c'était ça. J'ai ajouté une propriété d'étiquette à l'annotation, juste pour rendre les choses encore plus faciles. – Doresoom