Я пытаюсь сделать некоторые графики в LinqPad.У меня есть несколько журналов из API, и я знаю, как был вызван API, и если запрос был кэширован (в нашем реальном случае мы разрешаем адрес с помощью координат из Bing API, или мы получаем адреса из таблицы кэша, если мы его кэшировали)
я использую этот скрипт linqpad:
var startDate = new DateTime(2019, 1,1);
var Requests = new[]
{
new {Date=startDate, Name = "Api1", Cached=true },
new {Date=startDate, Name = "Api2", Cached=true },
new {Date=startDate, Name = "Api3", Cached=true },
new {Date=startDate, Name = "Api1", Cached=true },
new {Date=startDate, Name = "Api1", Cached=false },
new {Date=startDate, Name = "Api2", Cached=false },
new {Date=startDate, Name = "Api3", Cached=false },
new {Date=startDate, Name = "Api1", Cached=false },
new {Date=startDate.AddDays(1), Name = "Api3", Cached=true },
new {Date=startDate.AddDays(1), Name = "Api1", Cached=false },
new {Date=startDate.AddDays(1), Name = "Api2", Cached=true },
new {Date=startDate.AddDays(1), Name = "Api2", Cached=false },
new {Date=startDate.AddDays(1), Name = "Api1", Cached=true },
new {Date=startDate.AddDays(1), Name = "Api1", Cached=false },
new {Date=startDate.AddDays(1), Name = "Api3", Cached=true },
};
Requests.GroupBy(x=>x.Date).Chart (c => c.Key)
.AddYSeries (c => c.Count(x=>x.Name=="Api1"),name:"Api1")
.AddYSeries (c => c.Count(x=>x.Name=="Api2"),name:"Api2")
.AddYSeries (c => c.Count(x=>x.Name=="Api3"),name:"Api3")
.AddYSeries (c => c.Count(x=>x.Name=="Api1" && x.Cached),name: "Api1 Cached")
.AddYSeries (c => c.Count(x=>x.Name=="Api2" && x.Cached),name: "Api2 Cached")
.AddYSeries (c => c.Count(x=>x.Name=="Api3" && x.Cached),name: "Api3 Cached")
.Dump();
Вот результат:
На самом деле я хочу иметь только3, столбцы в день, но они должны быть освобождены (чтобы показать в одном столбце как общие, так и кэшированные значения)
если я переключаюсь на SlackedColumns, у меня все значения в одном столбце вместе, и это не то, что я хочу:
Есть идеи, как это сделать?
Обновление:
Что я хочу, это что-то вроде этого (но я предпочитаю, чтобы он был сгруппирован по дате, как это делает linqpad):