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_Annotation_Coordinates() { var plt = new ScottPlot.Plot(400, 300); // negative coordinates snap text to the lower or right edges plt.AddAnnotation("Top Left", 10, 10); plt.AddAnnotation("Lower Left", 10, -10); plt.AddAnnotation("Top Right", -10, 10); plt.AddAnnotation("Lower Right", -10, -10); // customization of style var a = plt.AddAnnotation("Fancy Annotation", 10, 40); a.Font.Size = 24; a.Font.Name = "Impact"; a.Font.Color = Color.Red; a.Shadow = true; a.Background = true; a.BackgroundColor = Color.White; a.BorderWidth = 2; TestTools.SaveFig(plt); }