2010-09-20 4 views
2

J'ai importé la date & les données temporelles d'un fichier texte, dans lequel il était stocké sous forme de chaîne, à Matlab. Je peux convertir la chaîne en données numériques et retour, en utilisant les commandes datenum et datestr.Comment présenter la date sous la forme d'une chaîne sur la figure matlab

Mon problème est de créer des figures. Je peux facilement tracer des données par rapport aux valeurs numériques & valeurs de temps, mais comme il est stocké sous forme de nombre, il n'est pas très utile. D'autre part, j'ai trouvé impossible de tracer des données contre les chaînes. Est-il possible que les données soient tracées par rapport à la valeur numérique & valeur de temps, mais présentées de manière amicale comme une chaîne?

Meilleures salutations,

Répondre

1

Jetez un oeil à datetick. Ou vous pouvez préférer rotate tick label. Plus d'informations sur les étiquettes de graduation est fourni par stackoverflow post.

+0

Oui, datetick convertit les données de date et d'heure numériques en chaînes. Cependant, comme je l'ai remarqué, il le fait une seule fois, lors de la première intrigue. Après avoir tracé la figure, lorsqu'elle est agrandie, les données normales obtiennent de nouvelles graduations (avec un pas plus petit), tandis qu'aucune nouvelle valeur n'apparaît. L'outil de curseur de données renvoie également uniquement des données numériques, non converties. Y a-t-il un moyen de résoudre ce problème? – RemekGdansk

+0

Vérifiez la documentation de 'ResizeFcn'. En utilisant * set (gcf, 'ResizeFcn', @resizeFunctionHandle) * 'vous pouvez assigner une fonction (handle) avec l'événement resize. Dans ce cas, * resizeFunctionHandle * est exécuté à chaque redimensionnement de la figure. – zellus

0

Je ne suis pas sûr que ce soit vous demandez:

date_numeric = 1:5; 
date_string={'date_1' 'date_2' 'date_3' 'date_4' 'date_5'}; 
y = rand(size(date_numeric)); 
plot(date_numeric, y, 'b') 
set(gca, 'XTick',1:5, 'XTickLabel',date_string) 

alt text

Questions connexes