我正在从JQPlot迁移到Livecharts,并将fireFox嵌入到Livecharts中。
我的功能几乎相同,但我现在遇到了一个可能的障碍。
我的叠层列数据集将包含第一个叠层列的大量值(212个条目),但随后它将在第二个叠层列中急剧减少。
查看代码,我必须在单个StackedColumnSeries中创建212个,并指定X轴上每个条目的值(31个条目)
有没有办法指定单个X轴的值?这意味着firest StackedColumnSeries将包含212个条目,但第二个条目仅包含大约100个条目。这意味着我可以使用StackedColumnSeries上的Tag属性来存储对用于点击的对象的引用。
我在下面提供了示例代码,说明我在这个过程中取得了多大的进展。
var SeriesCollection = new SeriesCollection{
new StackedColumnSeries
{
Values = new ChartValues<double> { 5, 5, 8, 0, 0, 8, 8, 5, 5, 5, 8, 0, 0, 8, 8, 5, 5, 5, 8, 0, 0, 8, 8, 5, 5, 5, 8, 0, 0, 8, 8},
Tag = new List<string>{"KEY0001", "KEY0002", "KEY0003", "ETC" }
},
new StackedColumnSeries
{
Values = new ChartValues<double>{5, 5, 8, 0, 0, 8, 8, 5, 5, 5, 8, 0, 0, 8, 8, 5, 5, 5, 8, 0, 0, 8, 8, 5, 5, 5, 8, 0, 0, 8, 8},
Tag = new List<string>{"KEY0011", "KEY0012", "KEY0013", "ETC" }
},
new StackedColumnSeries
{
Values = new ChartValues<double>{0, 5, 0, 0, 0, 0, 5, 0, 5, 0, 0, 0, 0, 5, 0, 5, 0, 0, 0, 0, 5, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5},
Tag = new List<string>{"KEY0021", "KEY0022", "KEY0023", "ETC" }
},
new StackedColumnSeries
{
Values = new ChartValues<double>{0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15},
Tag = new List<string>{"KEY0031", "KEY0032", "KEY0033", "ETC" }
},
new StackedColumnSeries
{
Values = new ChartValues<double>{0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8},
Tag = new List<string>{"KEY0041", "KEY0042", "KEY0043", "ETC" }
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},
new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},new StackedColumnSeries
{
Values = new ChartValues<double>{8},
},new StackedColumnSeries
{
Values = new ChartValues<double>{8},
}
};
SeriesCollection.Add(new LineSeries
{
Title = "Machine",
Values = new ChartValues<decimal> { 16, 16, 16, 0, 0, 16, 8, 8, 16, 16, 16, 0, 0, 16, 8, 8, 16, 16, 16, 0, 0, 16, 8, 8, 16, 16, 16, 0, 0, 16, 8 },
Stroke = new SolidColorBrush(System.Windows.Media.Color.FromScRgb((float)0.5, 100, 100, 100)),
Fill = new SolidColorBrush(System.Windows.Media.Color.FromScRgb((float)0.5, 100, 100, 100))
});
SeriesCollection.Add(new LineSeries
{
Title = "Employee",
Values = new ChartValues<decimal> { 24, 24, 16, 0, 0, 16, 16, 16, 24, 24, 16, 0, 0, 16, 16, 16, 24, 24, 16, 0, 0, 16, 16, 16, 24, 24, 16, 0, 0, 16, 16 },
});
cartesianChart1.Series = SeriesCollection;
//8
cartesianChart1.AxisX.Add(new Axis
{
Title = "Month",
Labels = new[] { "03/05/2018", "04/05/2018", "05/05/2018", "06/05/2018", "07/05/2018", "08/05/2018", "09/05/2018", "10/05/2018" ,
"11/05/2018" , "12/05/2018" , "13/05/2018" , "14/05/2018" , "15/05/2018" , "16/05/2018" , "17/05/2018" , "18/05/2018" ,
"19/05/2018" , "20/05/2018" , "21/05/2018" , "22/05/2018" , "23/05/2018" , "24/05/2018" , "25/05/2018" , "26/05/2018" ,
"27/05/2018" , "28/05/2018" , "29/05/2018" , "30/05/2018" , "31/05/2018" , "01/06/2018", "02/06/2018" },
Separator = DefaultAxes.CleanSeparator,
MinValue = 0,
MaxValue = 14
});
cartesianChart1.AxisY.Add(new Axis
{
Title = "Hours",
LabelFormatter = value => value.ToString("N"), //convert it to a number
MinValue = 0,
});