我没有足够的重复点来发布图像但是使用ColumnSeries给出了Silverlight 4图表示例,如何在单个列中创建当前堆叠在彼此顶部的每个子列旁边?
例如,列NVQ2显示5个不同位置的值列,列NVQ3显示5个不同位置的值列
我需要将这些位置并排放置,而不是叠在一起。
图表代码:
foreach (ER_Location theLocation in UserSelections.TheDataSet.ER_Locations)
{
ER_Year myYear = (ER_Year)SeriesSelection.SelectedItem;
ColumnSeries newSeries = new ColumnSeries();
newSeries.ItemsSource = UserSelections.GetDataRowsByYearAndLocation(theLocation.Location_ID, (int)myYear.Year);
newSeries.IndependentValueBinding = new System.Windows.Data.Binding("Variable_ID");
newSeries.DependentValueBinding = new System.Windows.Data.Binding("Value");
newSeries.Title = theLocation.Name;
newSeries.IsSelectionEnabled = true;
MainChart.Series.Add(newSeries);
}
更新
这就是图表目前的呈现方式:
答案 0 :(得分:1)
我的猜测是你的代码有以下using
声明: -
using System.Windows.Controls.DataVisualization.Charting.Compatible
实际上有两种名称为ColumnSeries
的不同类型。一个在上面的命名空间中,它派生自StackedColumnSeries
。
但是原始的非堆叠ColumnSeries
存在于主Charting名称空间中。此类型将并排放置每列。因此,我怀疑您需要做的就是从.Compatible
消除额外的using
: -
using System.Windows.Controls.DataVisualization.Charting;
答案 1 :(得分:1)
您必须使用color属性创建一个类。
实施例,
public class MyColor
{
public Brush ChartColor { get; set; }
}
然后创建您喜欢的颜色列表,如
List<MyColor> colorList = new List<MyColor>
{
new MyColor
{ ChartColor = new SolidColorBrush(Colors.Blue)},
new MyColor
{ ChartColor = new SolidColorBrush(Colors.Green) },
...
...
}
从Xaml,将数据点的背景颜色绑定到ChartColor