private void PlotUnitKills(PlotModel m) { if (EmpiresUnitKills == null) { return; } AddXDatesAxis(m); LinearAxis citiesY = new LinearAxis(); citiesY.Title = Labels.KilledUnits; citiesY.Key = "units_kills"; citiesY.Position = AxisPosition.Right; m.Axes.Add(citiesY); long lastKills = -1; double killsValue = 0; foreach (var empire in EmpiresUnitKills.OrderBy(x => x.Key.UnitsKillsRank)) { lastKills = -1; killsValue = 0; OxyPlot.Series.StairStepSeries s = new OxyPlot.Series.StairStepSeries(); s.XAxisKey = "x"; s.YAxisKey = "units_kills"; s.VerticalStrokeThickness = 0.2; s.MarkerType = MarkerType.None; s.Title = string.Format("{0} ({1})", empire.Key.PlayerName, empire.Key.AlianceName); foreach (var hr in empire.Value.OrderBy(x => x.CreateDT.Value)) { if (DiffKillsScore) { if (lastKills < 0) { //pierwszy wynik, zaczynam od zera lastKills = hr.Score; killsValue = 0; } else { killsValue = hr.Score - lastKills; lastKills = hr.Score; } } else { killsValue = hr.Score; } s.Points.Add(DateTimeAxis.CreateDataPoint(hr.CreateDT.Value, killsValue)); } m.Series.Add(s); } }
private void PlotUnitKillsBar(PlotModel m) { if (EmpiresUnitKills == null) { return; } LinearAxis yAxis = new LinearAxis(); yAxis.Title = Labels.KilledUnits; if (DiffKillsScore) { yAxis.Title += " " + Labels.Difference1; } yAxis.Key = "units_kills"; yAxis.Position = AxisPosition.Left; yAxis.MajorGridlineStyle = LineStyle.Solid; yAxis.MinorGridlineStyle = LineStyle.Dot; m.Axes.Add(yAxis); //daty var categories = new CategoryAxis(); categories.Title = Labels.Date; categories.Position = AxisPosition.Bottom; categories.GapWidth = 0.1; m.Axes.Add(categories); long lastKills = -1; double killsValue = 0; foreach (var empire in EmpiresUnitKills.OrderBy(x => x.Key.UnitsKillsRank)) { lastKills = -1; killsValue = 0; OxyPlot.Series.ColumnSeries cs = new OxyPlot.Series.ColumnSeries(); cs.LabelFormatString = "{0}"; cs.Title = string.Format("{0} ({1})", empire.Key.PlayerName, empire.Key.AlianceName); int categoryIx = -1; foreach (var hr in empire.Value.OrderBy(x => x.CreateDT.Value)) { if (DiffKillsScore) { if (lastKills < 0) { //pierwszy wynik, zaczynam od zera lastKills = hr.Score; killsValue = 0; } else { killsValue = hr.Score - lastKills; lastKills = hr.Score; } } else { killsValue = hr.Score; } var serverTime = hr.CreateDT.Value.AddHours(ServerTimeDiffH); if (FromDate.HasValue && serverTime >= FromDate) { string catName = string.Format("{0} h:{1}", serverTime.ToString("yy.MM.dd"), serverTime.ToString("HH")); categoryIx = categories.Labels.IndexOf(catName); if (categoryIx < 0) { categories.Labels.Add(catName); categoryIx = categories.Labels.IndexOf(catName); } cs.Items.Add(new OxyPlot.Series.ColumnItem(killsValue, categoryIx)); } } m.Series.Add(cs); } }