0

我在 Silverlight 和 C# 中使用 VISI Fire 来生成一些数据图表。一种样式的图表允许以列的形式显示堆积的数据,我正在使用的 xaml 代码如下所示:

IMG]https://i67.photobucket.com/albums/h292/Athono/xaml.png[/IMG

我正在尝试构建的图表基于 visi 火灾图表示例。如果您访问http://www.visifire.com/silverlight_wpf_charts_gauges_gallery.php并在此处查看他们的堆叠示例http://www.visifire.com/silverlight_stacked_charts_gallery.php 您可以看到我试图模仿的 xaml 示例。

IMG]https://i67.photobucket.com/albums/h292/Athono/post_this.png[/IMG

但我的图表结果不同。我的有这个奇怪的重叠日期功能

IMG]http://i67.photobucket.com/albums/h292/Athono/badrepresentation.png[/IMG

现在,我已经仔细检查了代码,据我所知,我对每个数据集对都有相同的日期。

IMG]http://i67.photobucket.com/albums/h292/Athono/code-1.png[/IMG

我已经逐步完成了这段代码,并确保对于 i 的每个值,每个数据对的年份和月份完全相同。那么为什么我的图表如此混乱?

我使用 DateTime 类的方式有问题吗?

new DateTime((Int32) Year_Id,(Int32) SMonth_Id, (Int32)1);
4

2 回答 2

1

第一种解决方案:

将两个 DataSeries 中的 AxisXLabel 属性而不是 XValue 设置为字符串。不要在 DataSeries 或 x 轴中设置 XValueType。也不要在 x 轴上设置 Interval 属性。

例子:

<vc:Chart.Series>
    <vc:DataSeries>
        <vc:DataSeries.DataPoints>
            <vc:DataPoint  AxisXLabel="Jan - 2010" YValue="2"/>
            <vc:DataPoint  AxisXLabel="Feb - 2010" YValue="3"/>
            <vc:DataPoint  AxisXLabel="Mar - 2010" YValue="4"/>
        </vc:DataSeries.DataPoints>
    </vc:DataSeries>
    <vc:DataSeries>
        <vc:DataSeries.DataPoints>
            <vc:DataPoint  AxisXLabel="Jan - 2010" YValue="10"/>
            <vc:DataPoint  AxisXLabel="Feb - 2010" YValue="20"/>
            <vc:DataPoint  AxisXLabel="Mar - 2010" YValue="30"/>
        </vc:DataSeries.DataPoints>
    </vc:DataSeries>
</vc:Chart.Series>

第二种解决方案:

无需对当前代码进行任何更改。按照您当前的设置继续设置 XValue。您只需要在 XAML 的 x 轴中设置两个属性 IntervalType="Month" 和 Interval="1"。

于 2011-07-20T07:37:23.787 回答
0

Somnath 的第二个解决方案有效。

我不确定第一个。我记得它被尝试过,但我没有得到很好的结果。对于堆叠图表,它有问题。

我终于让它工作了。我不得不向 xaml 添加一些规范。

这是修复:

<vc:Chart.AxesX>
    <vc:Axis ValueFormatString="MMM - yyyy" Padding="4" LineThickness="0" IntervalType="Months"  Interval="1"/>
</vc:Chart.AxesX>
于 2011-07-20T20:04:13.597 回答