2011-12-30 74 views
0

我正在使用Silverlight 4.0和Silverlight 4.0的Telerik RadChart控件。我有一个问题,因为我认为我的数据集中存在差异,这会导致我的较大堆积条被截断到ChartArea中。没问题,我想,我可以遍历所有数据并找到我的StackedBar必须的最大尺寸,并调整y轴的比例。这是我选择实施的方法。为什么我的RadChart StackedBarChart不能堆叠酒吧来匹配Y轴?

private void ForceScaleOfYaxis(IEnumerable<ChartObject> chartData) 
    { 
     double sum = 0; 
     foreach (var bar in chartData) 
     { 
      sum = Math.Max(sum, bar.Series1 + 
           bar.Series2 + 
           bar.Series3 + 
           bar.Series4 + 
           bar.Series5); 
     } 

     ChartArea chartArea = radChart1.DefaultView.ChartArea; 
     chartArea.AxisY.AutoRange = true; 
     double min = chartArea.AxisY.ActualMinValue; 
     double step = sum/10; 
     chartArea.AxisY.AutoRange = false; 
     chartArea.AxisY.AddRange(min, sum, step); 
    } 

这很有效,因为它将y轴更改为等于堆叠钢筋的最大系列值之和。

现在我有一个不同的问题:我正确设置y轴的比例,但图表不显示堆叠。 Stacked Bar Chart

可以在下面的图表中看到这一点,如此屏幕截图所示。

+1

恐怕我无法重现您的问题。是否有可能提供更多关于它的信息,如图表XAML,或者甚至可以放在一起显示问题的[SSCCE](http://sscce.org)?我也对Y轴上的步骤数量感到困惑:你的代码片段将其限制为10,但上面的图片显示的比这更多。 – 2011-12-30 21:14:39

+0

我将不得不付出一些努力去做一个足够清晰的例子。这将需要一些时间。 – Blanthor 2012-01-04 18:30:58

回答

0

我不认为这与由YAxis范围引起的条块剪切有关,而是您将数据分组并填充图表的方式。 你的一个示例项目应该对真实问题提供更多的信息。