Silverlight Toolkit LineSeries随机连接数据点
我试图渲染一个折线图,但每次我重新绘制图形时,该折线图都会随机连接数据点 My items source是自定义类的类型化列表,它有两个属性,一个用于x轴,一个用于y轴(都是“双精度”值)。这些属性的值不会更改,只加载一次 我的直线有几个直线、垂直直线跳跃,即3或4个点的x轴值相同,但y轴值发生变化。它用一条垂直的直线把这些点连接起来 但奇怪的是,它随机使用任何一个数据点进行左侧连接,另一个数据点用于右侧连接 我假设它使用基于项目源顺序的第一个点从左边连接,最后一个点从右边连接 项目源总是以相同的顺序,这也是我希望它们连接的顺序 我尝试附加图像,但不允许。。。因此,只有文本描述是可能的Silverlight Toolkit LineSeries随机连接数据点,silverlight,random,toolkit,lineseries,Silverlight,Random,Toolkit,Lineseries,我试图渲染一个折线图,但每次我重新绘制图形时,该折线图都会随机连接数据点 My items source是自定义类的类型化列表,它有两个属性,一个用于x轴,一个用于y轴(都是“双精度”值)。这些属性的值不会更改,只加载一次 我的直线有几个直线、垂直直线跳跃,即3或4个点的x轴值相同,但y轴值发生变化。它用一条垂直的直线把这些点连接起来 但奇怪的是,它随机使用任何一个数据点进行左侧连接,另一个数据点用于右侧连接 我假设它使用基于项目源顺序的第一个点从左边连接,最后一个点从右边连接 项目源总是以相同
LineSeries ser = new LineSeries();
Chart.Series.Add(ser);
ser.DependentValuePath = "YAxis";
ser.IndependentValuePath = "XAxis"
ser.ItemsSource = data.Coordinates;
有人知道为什么会这样吗?感谢您的建议。这是因为图表是基于独立值而非依赖值的。我的“条形图”也有类似的问题。就像设计的那样。把你的图表想象成一个横向翻转的x对y图。现在您可以看到它是如何绘制的。基于y更改点的顺序没有任何作用
我认为Telerik没有这个限制。我在创建条形图时也遇到过类似的问题。幸运的是,我的一位同事注意到silverlight图表都是从左向右运行的,这会影响它如何绘制提供的不同绘图 简单地旋转图表似乎是最好的主意,但它仍然有一些问题与图表(和我的传奇也被旋转) 我不太擅长C#编码器,所以我创建了一个图表样式的控件模板。我进入模板,旋转图表的边缘面板。下面是一个非常简单和通用的示例:
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="charting:Chart">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Grid>
我没有把所有的代码都放在这里,但是图表的完整模板可以在
这样,图表的整个打印区域都被翻转,允许图表向下打印,而不是强制数据向右打印。(我也遇到了同样的问题,线绘制不正确,连接点的顺序不稳定)
这对我的图表很有帮助(需要进行调整,但这给出了我能够计算出的大致概念)。希望对您有所帮助。谢谢您提供的信息。我想我将不得不开始寻找其他图表工具包。
<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>