2012-10-08 4 views
0

J'essaie de rendre un graphique linéaire mais la LineSeries relie les points de données de manière aléatoire chaque fois que je le fais redessiner le graphique.Silverlight Toolkit LineSeries connecte les points de données de manière aléatoire

La source de mes éléments est une liste typée de mes classes personnalisées qui ont 2 propriétés, une pour l'axe des x et une pour l'axe des y (les deux sont des valeurs 'doubles'). Les valeurs de ces propriétés ne changent pas et sont chargées une seule fois.

Mes lignes comportent plusieurs sauts de ligne verticaux, c'est-à-dire que la valeur de l'axe x est la même pour 3 ou 4 points, mais la valeur y change. Il relie correctement ces points avec une droite verticale. Mais la chose étrange est qu'elle utilise de manière aléatoire l'un des points de données pour la connexion de la gauche et un autre pour la connexion vers la droite.

Je suppose qu'il utilise le premier point en fonction de l'ordre de la source d'éléments pour la connexion à partir de la gauche et le dernier point pour la connexion à droite.

La source d'éléments est toujours dans le même ordre, c'est également l'ordre dans lequel je veux qu'ils soient connectés.

J'ai essayé d'attacher des images, mais je ne suis pas autorisé à ... Donc, seule une description textuelle est possible.

 LineSeries ser = new LineSeries(); 
     Chart.Series.Add(ser); 
     ser.DependentValuePath = "YAxis"; 
     ser.IndependentValuePath = "XAxis" 
     ser.ItemsSource = data.Coordinates; 

Est-ce que quelqu'un sait pourquoi cela se produit? Merci pour vos suggestions

Répondre

0

C'est parce que le graphique est basé sur la valeur indépendante non basée sur la valeur dépendante. J'ai eu un problème similaire avec ma "bande dessinée". C'est comme prévu. Pensez à votre graphique comme une intrigue X vs Y retournée sur le côté. Maintenant vous pouvez voir comment ça se passe. Changer l'ordre des points en fonction de y ne fait rien.

Je ne pense pas que Telerik ait cette limitation.

+0

Merci pour l'info. Je suppose que je vais devoir commencer à regarder d'autres trousses d'outils de cartographie. – Wolfgang

1

J'ai rencontré un problème similaire lors de la création d'un graphique de style de bande. Heureusement, un de mes collègues a remarqué que les graphiques Silverlight tournent tous de gauche à droite, ce qui a une incidence sur la façon dont les graphiques sont présentés.

Faire simplement pivoter le graphique semblait être la meilleure idée - mais il restait quelques problèmes avec les graphiques (et ma légende était également tournée). Je ne suis pas vraiment un codeur C#, j'ai donc créé un modèle de contrôle dans le style du graphique. Je suis entré dans le gabarit et j'ai fait pivoter le panneau de bord du graphique. Ci-dessous un exemple très bref et générique:

<Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="charting:Chart"> 
     <Border Background="{TemplateBinding Background}" 
       BorderBrush="{TemplateBinding BorderBrush}" 
       BorderThickness="{TemplateBinding BorderThickness}"> 
       <Grid> 

Je ne mets pas tout le code ici, mais le modèle complet pour le graphique peut être trouvé à http://silverlight.codeplex.com/SourceControl/changeset/view/80285#778932

    <chartingprimitives:EdgePanel x:Name="ChartArea" 
             Style="{TemplateBindingChartAreaStyle}" 
             RenderTransformOrigin="0.5,0.5"> 
         <chartingprimitives:EdgePanel.RenderTransform> 
          <CompositeTransform Rotation="90"/> 
         </chartingprimitives:EdgePanel.RenderTransform>   
        </chartingprimitives:EdgePanel> 
        <Grid x:Name="PlotArea" Canvas.ZIndex="-1" 
          RenderTransformOrigin="0.5,0.5" /> 
        <Border Canvas.ZIndex="10" BorderBrush="Gray" 
          BorderThickness="1"/> 
       </Grid> 
      </Border> 
     </ControlTemplate> 
    </Setter.Value> 
</Setter> 

De cette façon, la La totalité de la zone de traçage du graphique a été retournée, permettant au graphique de tracer vers le bas au lieu de forcer les données à tracer vers la droite. (J'ai eu le même problème avec les lignes ne pas traçant correctement et être erratique sur quel ordre il voulait connecter les points)

Cela a aidé avec mon tableau (il y avait des ajustements nécessaires, mais cela donne l'idée générale de ce que J'étais capable de comprendre). J'espère que c'est un peu utile pour vous.

Questions connexes