Один StackedColumnSeries для StackedColumn - PullRequest
0 голосов
/ 10 мая 2018

Я нахожусь в процессе потенциальной миграции от JQPlot и внедрил fireFox в Livecharts.

У меня почти такая же функциональность, но я столкнулся с возможной ошибкой.

МойНабор данных для столбцов с накоплением будет содержать большое количество значений для первого столбца с накоплением (212 записей), но затем резко сократится на второй столбец с накоплением.

Глядя на код, я должен создать 212 отдельныхStackedColumnSeries и укажите значения для каждой записи по оси X (31 запись)

Можно ли указать значения для одной оси X?Это будет означать, что самый старый StackedColumnSeries будет содержать 212 записей, но второй будет содержать только около 100. Это будет означать, что я могу использовать свойство Tag в StackedColumnSeries для хранения ссылки на объект, используемый для перехода по клику.

Ниже приведен пример кода относительно того, как далеко я продвинулся в этом процессе.

enter image description here

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,
        });

1 Ответ

0 голосов
/ 14 мая 2018

Поскольку у меня недостаточно представителей, чтобы комментировать, я просто добавлю это как ответ, но это скорее комментарий. То, что вы просите сделать, нельзя сделать с помощью серии LiveCharts StackedColumn Series на данный момент. Все столбцы содержат одинаковое количество рядов, только некоторые не содержат значений.

...