Я пытаюсь создать линейную диаграмму с использованием таблицы данных, которая содержит все данные, которые мне нужны, но я не могу сгруппировать их успешно.
Мне нужно сгруппировать данные по месяцу / годуи посчитать все записи, которые попадают в каждый соответствующий месяц / год.
Я действительно пытался извлечь данные и сделать график в Excel.Так это должно выглядеть следующим образом.
![![enter image description here](https://i.stack.imgur.com/BWPBR.png)
Игнорировать кварталы, поскольку они автоматически генерируются Excel
Вот код:
var chartResults = (from myrow in chartInstruction.Chart.AsEnumerable()
group myrow by new
{
series = myrow.Field<string>(chartInstruction.Series),
xaxis = myrow.Field<DateTime>(chartInstruction.Xaxis).ToShortDateString()
}
into g
select new
{
Field = g.Key,
Total = g.Count()
}).ToArray();
string[] xAxis = chartResults.Select(x => x.Field.xaxis).Distinct().OrderBy(x => x).ToArray();
string[] series = chartResults.Select(x => x.Field.series).Distinct().OrderBy(x => x).ToArray();
var seriesInfo = new List<SeriesInfo>();
foreach (string s in series)
{
var tmp = new List<double>();
foreach (string xx in xAxis)
{
var found = chartResults.FirstOrDefault(x => x.Field.xaxis == xx && x.Field.series == s);
tmp.Add(found?.Total ?? 0);
}
seriesInfo.Add(new SeriesInfo { Name = s, Series = tmp.ToArray() });
}