2012-10-08 26 views
0

我想呈現折線圖,但LineSeries每次重繪圖形時都會隨機連接數據點。Silverlight工具包LineSeries隨機連接數據點

我的項目源是我的自定義類的類型列表,它具有2個屬性,一個用於x軸,另一個用於y軸(都是'double'值)。這些屬性的值不會更改並加載一次。

我的線條有幾條直線垂直線跳躍,即x軸值對於3或4個點是相同的,但是y值會發生變化。它將這些點用一條直線垂直連接起來。

但奇怪的是,它隨機使用任何數據點從左側連接到另一個連接到右側。

我會假設它使用第一個點根據項目源的順序從左邊的連接到右邊的連接的最後一個點。

項目來源總是以相同的順序,這也是我希望它們連接的順序。

我試圖附加圖像,但我不允許...所以只有文本描述是可能的。

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

有人知道爲什麼會發生這種情況嗎?感謝您的任何建議。

回答

0

它是因爲圖表是基於獨立價值而不是從屬價值的基礎。我和我的「帶狀圖」有類似的問題。這是設計的。把你的圖表想象成一個x vs y的圖形橫向翻轉。現在你可以看到它是如何繪製的。基於y更改點的順序不會執行任何操作。

我不認爲Telerik有這個限制。

+0

感謝您的信息。我想我將不得不開始尋找其他製圖工具包。 – Wolfgang

1

我在創建帶狀樣式圖時遇到了類似的問題。幸運的是,我的一位同事注意到silverlight圖表全部從左到右運行 - 這影響了它如何繪製不同的圖表。

簡單地旋轉圖表似乎是最好的主意 - 但它仍然有一些圖表問題(我的圖例也旋轉了)。

我不是一個C#編碼器,所以我創建了一個圖表風格的控制模板。我進入了模板並旋轉了圖表的邊框。下面是一個非常簡短和普通的例子:

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

我不會把所有的代碼都在這裏,但圖表的完整的模板可以在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> 

通過這種方式,可以找到圖表的整個繪圖區域都被翻轉過來,從而允許圖表向下繪圖,而不是強制數據繪圖到右側。 (我有同樣的問題,沒有正確地繪製線條,並以什麼順序連接點的方式是不穩定的)

它幫助我的圖表(有調整需要,但這給出了什麼是一般的想法我能弄清楚)。希望這對你有所幫助。