2011-02-10 2 views
2

j'ai changé mon x axe à DateAsOrdinal, mais je voudrais améliorer le format d'étiquette. Je gère actuellement le XAxis.ScaleFormatEvent comme ceci:étiquettes DateAsOrdinal axeX dans ZedGraph

Private Function OnXScaleFormatEvent(ByVal pane As GraphPane, ByVal axis As Axis, ByVal val As Double, ByVal index As Integer) As String 
    Dim result As String = "" 
    If val < priceBars.Count Then 
     Dim time As Date = Date.FromOADate(priceBars(val).X) 
     result = [String].Format("{0:D2}{1}{2:D2}", time.Hour, ":", time.Minute) 
    End If 

    Return result 
End Function 

Comment puis-je faire les étiquettes imprimer seulement toutes les 30 minutes entières? Ou toutes les 2 heures comme dans l'image ci-dessous? Je crois que j'ai encore besoin de référencer les valeurs x de barre, parce que j'ai besoin de tracer plusieurs jours continuellement, avec seulement quelques heures de chaque jour, comme l'image montre; De 9h00 à 23h00

http://i53.tinypic.com/2jcwknd.png

Répondre

0

fixe ce en formatant chaque étiquette individuellement.

1

Je pense, cela va faire:

chart.GraphPane.XAxis.Scale.MajorStepAuto = False 
chart.GraphPane.XAxis.Scale.MajorUnit = DateUnit.Minute 
chart.GraphPane.XAxis.Scale.MajorStep = 30 
chart.GraphPane.XAxis.Scale.BaseTic = 0 
+0

Merci! Bien que je ne puisse pas faire ce travail .. Il donne un pas de 30, mais ce ne sera pas à l'heure entière/demi-heure (00 et 30). – bretddog

+0

J'ai ajouté la baseTic à l'exemple. Vous pouvez donc définir le point de départ. La valeur zéro doit être votre ami (la valeur par défaut est indéfinie, donc baseTic est l'endroit où vos valeurs x commencent). – SpeziFish

+0

Ah .. Maintenant, enfin, je pense que je comprends comment cela fonctionne. Comme j'utilise l'axe DateAsOrdinal, seuls MajorStep et BaseTic auront un effet et seront des valeurs ordinales. Cependant, cela ne marche pas si vous voulez une étiquette toutes les heures et la journée se termine à l'heure xx: 30. Puis le lendemain dira les demi-heures. Une autre solution peut-être utiliser MajorStep = 1, puis gérer toutes les étiquettes dans l'événement ScaleFormat. Ce gestionnaire d'événements a le label-index, mais est-il possible d'accéder à la liste des labels pour définir ceux que je ne veux pas montrer comme .IsInvisible? Cela ne fait pas partie de GraphObjectList, alors idk quelle liste ..? – bretddog