Beispiel #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());
        }
Beispiel #2
0
        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);
        }