Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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);
        }