0

我正在尝试渲染折线图,但 LineSeries 每次重绘图表时都会随机连接数据点。

我的项目源是我的自定义类的类型列表,它具有 2 个属性,一个用于 x 轴,一个用于 y 轴(都是“双”值)。这些属性的值不会改变,只加载一次。

我的线条有几个直线的垂直线跳跃,即 3 或 4 个点的 x 轴值相同,但 y 值发生变化。它用一条垂直的直线正确连接这些点。

但奇怪的是,它随机使用任何一个数据点来连接左侧,另一个用于连接右侧。

我假设它使用基于项目源顺序的第一个点用于从左侧连接,最后一个点用于连接到右侧。

项目源始终处于相同的顺序,这也是我希望它们连接的顺序。

我尝试附加图像,但不允许...所以只能进行文字描述。

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

有谁知道为什么会这样?感谢您的任何建议。

4

2 回答 2

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>

这样,图表的整个绘图区域都被翻转,允许图表向下绘制,而不是强制数据向右绘制。(我遇到了同样的问题,线条绘制不正确,并且在连接点的顺序上不稳定)

它对我的图表有所帮助(需要进行调整,但这给出了我能够弄清楚的总体思路)。希望对你有点帮助。

于 2013-01-24T16:36:45.843 回答
0

这是因为图表是基于独立值而不是基于依赖值的。我的“条形图”也有类似的问题。这是设计的。将您的图表想象成横向翻转的 x vs y 图。现在你可以看到它是如何绘制的。根据 y 更改点的顺序不会做任何事情。

我不认为 Telerik 有这个限制。

于 2012-10-08T15:30:04.990 回答