public static System.Drawing.Bitmap MakePlot(string packageName, List <DownloadRecord> records) { double[] xs = records.Select(x => x.DateTime.ToOADate()).ToArray(); double[] ys = records.Select(x => (double)x.Downloads).ToArray(); var plt = new ScottPlot.Plot(600, 350); var sp = plt.AddScatterLines(xs, ys, lineWidth: 2); plt.Title($"NuGet Download Statistics for {packageName}"); plt.XAxis.DateTimeFormat(true); plt.YLabel("Total Downloads"); string day = DateTime.UtcNow.ToString("yyyy-MM-dd"); string time = DateTime.UtcNow.ToString("H:mm"); var dateAnnotation = plt.AddAnnotation($"{ys.Last():N0} downloads as of {day} ({time} UTC)", -3, -1); dateAnnotation.Border = false; dateAnnotation.Shadow = false; dateAnnotation.Background = false; dateAnnotation.Font.Color = System.Drawing.Color.FromArgb(150, System.Drawing.Color.Black); dateAnnotation.Font.Name = ScottPlot.Drawing.InstalledFont.Monospace(); dateAnnotation.Font.Size = 10; return(plt.Render()); }
public void Test_DataGen_SinSweep() { int pointCount = 5_000; double[] xs = ScottPlot.DataGen.Consecutive(pointCount); double[] ys = ScottPlot.DataGen.SinSweep(pointCount, density: 20); var plt = new ScottPlot.Plot(600, 300); plt.AddScatterLines(xs, ys); plt.AxisAutoX(margin: 0); TestTools.SaveFig(plt); }