2010-10-06 39 views
0

Je cherche à définir l'axe des y pour un MSChart de minuit à minuit, soit dans un format d'heure normale (ie - "1:30 AM") ou militaire temps. J'ai compris que je peux spécifier le format de l'axe des y en utilisant ChartArea.AxisY.LabelStyle = new LabelStyle() {Format = "HH: mm"}, mais je ne peux pas savoir quoi définir les valeurs minimum/maximum à être.Besoin de régler la plage de temps sur l'axe Y sur un MSChart

Est-ce que quelqu'un a employé ce format?

Répondre

0

Il y a quelques choses que vous devez faire pour que cela fonctionne correctement. MSChart accepte les objets DateTime en tant que valeurs Y.

Vous pouvez émuler des durées en faisant cela pour chacun de vos points de données (en supposant qu'ils sont plages temporelles ou quelque chose convertible en TimeSpan):

TimeSpan testSpan = TimeSpan.FromMinutes(5); 

YourChart.Series(0).Points.AddY(new DateTime(testSpan.Ticks)) 

qui convertira en un datetime à partir du début du temps CLR (par exemple 1/1/0001 12:05:00 AM). Ensuite, il suffit d'utiliser le format d'étiquette "HH: mm" sur l'axe Y. Ensuite, il suffit d'utiliser le format d'étiquette "HH: mm".

<asp:ChartArea Name="VsChartArea">  
    <AxisY Minimum="0"> 
     <LabelStyle Format="HH:mm" /> 
    </AxisY> 
</asp:ChartArea> 

Cela devrait faire ressembler à ceci:

Duration example

Pour configurer un intervalle personnalisé (5 minutes):

<AxisY Minimum="0" IntervalType="Minutes" Interval="5"> 

Hope this helps!

+0

C'est l'une des réponses les plus directes que j'ai vues sur ce site, merci! Bien que j'aie mis en place une solution de contournement, je ferai certainement référence à cette réponse à l'avenir. – Marc

0

J'ai trouvé une solution de contournement car je n'ai jamais pu obtenir la mise en forme pour fonctionner nativement avec les valeurs DateTime.

J'ai finalement changé mes données d'axe Y pour qu'elles soient au format entier, avec des plages de 0 à 2400 (vraiment 2359) pour représenter l'heure militaire. J'ai ensuite mis à jour le LabelStyle.Format à "00:00" qui rend mes valeurs entières en temps militaire.

Yay pour moi. J'espère que ceci aide quelqu'un d'autre.

0

Si vous utilisez l'heure militaire, remarquez-vous que votre balance n'est plus linéaire?

+0

J'ai remarqué que l'axe affichait des heures militaires invalides comme 14:75, si c'est ce que vous voulez dire. – Marc