Exemple #1
0
        public static string xkcd()
        {
            float[] data = new float[] { 35, 30, 26, 22, 17, 5, 96, 5, 4, 3, 2, 2, 1, 1 };

            string[] axisLabels = new string[] { ".00", ".02", ".04", ".06", ".08", ".10",
                                                 ".12", ".14", ".16", ".18", ".20", ".22",
                                                 ".24", ".26" };

            ChartAxis bottomAxis = new ChartAxis(ChartAxisType.Bottom);

            bottomAxis.SetRange(0, 30);

            for (int i = 0; i < axisLabels.Length; i++)
            {
                bottomAxis.AddLabel(new ChartAxisLabel(axisLabels[i], i * 2));
            }

            ChartAxis bottomAxis2 = new ChartAxis(ChartAxisType.Bottom);

            bottomAxis2.AddLabel(new ChartAxisLabel("Blood Alcohol Concentration (%)", 50));

            LineChart lineChart = new LineChart(400, 200);

            lineChart.SetTitle("Programming Skill", "000000", 14);
            lineChart.SetData(data);
            lineChart.AddAxis(bottomAxis);
            lineChart.AddAxis(bottomAxis2);
            return(lineChart.GetUrl());
        }
Exemple #2
0
        public static string axisRange()
        {
            ChartAxis bottomAxis = new ChartAxis(ChartAxisType.Bottom);

            bottomAxis.SetRange(0, 50);

            int[]     line1     = new int[] { 5, 10, 50, 34, 10, 25 };
            LineChart lineChart = new LineChart(150, 150);

            lineChart.AddAxis(bottomAxis);
            lineChart.SetData(line1);
            return(lineChart.GetUrl());
        }
        public static async void Execute(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            if (!Name.Equals(e?.Message?.Text))
            {
                return;
            }

            var user     = UserExistCommand.GetUser(e.Message.From.Id);
            var forecast = GetLocationCommand.GetForecast(user.Id);

            if (forecast is null)
            {
                GetLocationCommand.SetLocation(user.Id);
                return;
            }

            var temp  = new int[5];
            var marks = new string[5];
            var j     = 1;

            for (var i = 0; i < 5; i++, j += 8)
            {
                temp[i]  = (int)forecast.List[j].Main.Temp + 5;
                marks[i] = forecast.List[j].Dt_txt;
            }

            var dataset = new List <int[]>();

            dataset.Add(temp);

            var lineChart = new LineChart(600, 300);

            lineChart.SetTitle("График температуры на 5 дней", "0088A0", 14);
            lineChart.SetData(dataset);
            lineChart.SetGrid(10, 10);

            lineChart.AddAxis(new ChartAxis(ChartAxisType.Bottom, marks));
            var chartAxisLeft = new ChartAxis(ChartAxisType.Left);

            chartAxisLeft.SetRange(-20, 80);
            lineChart.AddAxis(chartAxisLeft);

            lineChart.SetDatasetColors(new string[] { "85E0F0" });
            lineChart.SetLegend(new string[] { "Температура" });

            await Bot.client.SendPhotoAsync(user.Id, lineChart.GetUrl());
        }
Exemple #4
0
        /// <summary>
        /// 柱状图
        /// </summary>
        /// <returns></returns>
        public string GenerateBarChart()
        {
            int[]    data       = new int[] { 1027, 98, 36, 374, 473, 54, 126, 22, 147, 20, 188, 58 };
            string[] axisLabels = new string[] { "AA", "BB", "BB", "DD", "EE", "FF", "GG", "HH", "II", "JJ", "KK", "LL" };

            BarChart barChart = new BarChart(500, 250, BarChartOrientation.Vertical, BarChartStyle.Grouped);

            barChart.SetTitle("三日内更新数据");

            ChartAxis axisX = new ChartAxis(ChartAxisType.Bottom, axisLabels);
            ChartAxis axisY = new ChartAxis(ChartAxisType.Left);

            axisY.SetRange(0, barChart.findMaxValue(data));

            barChart.AddAxis(axisX);
            barChart.AddAxis(axisY);
            barChart.SetData(barChart.ConvertToPorcent(data));

            return(barChart.GetUrl());
        }
Exemple #5
0
        /// <summary>
        /// 折线图
        /// </summary>
        /// <returns></returns>
        public string GenerateLineChart()
        {
            int[]    data       = new int[] { 1027, 98, 36, 374, 473, 54, 126, 22, 147, 20, 188, 58 };
            string[] axisLabels = new string[] { "AA", "BB", "CC", "DD", "EE", "FF", "GG", "HH", "II", "JJ", "KK", "LL" };

            LineChart lineChart = new LineChart(450, 250);

            lineChart.SetTitle("三日内更新", "000000", 14);
            lineChart.SetData(lineChart.ConvertToPorcent(data));

            ChartAxis axisX = new ChartAxis(ChartAxisType.Bottom, axisLabels);
            ChartAxis axisY = new ChartAxis(ChartAxisType.Left);

            axisY.SetRange(0, lineChart.findMaxValue(data));

            lineChart.AddFillArea(new FillArea("EFEFEF", 0));
            lineChart.AddAxis(axisX);
            lineChart.AddAxis(axisY);

            return(lineChart.GetUrl());
        }
Exemple #6
0
        public static string axesRangeTest()
        {
            int[] line1 = new int[] { 5, 10, 50, 34, 10, 25 };
            int[] line2 = new int[] { 15, 20, 60, 44, 20, 35 };

            List <int[]> dataset = new List <int[]>();

            dataset.Add(line1);
            dataset.Add(line2);

            LineChart lineChart = new LineChart(250, 150);

            lineChart.SetTitle("Axes Range Test", "0000FF", 14);
            lineChart.SetData(dataset);

            ChartAxis topAxis = new ChartAxis(ChartAxisType.Top);

            topAxis.SetRange(0, 10);
            lineChart.AddAxis(topAxis);

            ChartAxis rightAxis = new ChartAxis(ChartAxisType.Right);

            rightAxis.SetRange(0, 10);
            lineChart.AddAxis(rightAxis);

            ChartAxis bottomAxis = new ChartAxis(ChartAxisType.Bottom);

            bottomAxis.SetRange(0, 10);
            lineChart.AddAxis(bottomAxis);

            ChartAxis leftAxis = new ChartAxis(ChartAxisType.Left);

            leftAxis.SetRange(0, 10);
            lineChart.AddAxis(leftAxis);

            return(lineChart.GetUrl());
        }
Exemple #7
0
        public static string axesStyleTest()
        {
            int[] line1 = new int[] { 5, 10, 50, 34, 10, 25 };
            int[] line2 = new int[] { 15, 20, 60, 44, 20, 35 };

            List <int[]> dataset = new List <int[]>();

            dataset.Add(line1);
            dataset.Add(line2);

            LineChart lineChart = new LineChart(250, 150);

            lineChart.SetTitle("Axes Style Test", "0000FF", 14);
            lineChart.SetData(dataset);

            ChartAxis topAxis = new ChartAxis(ChartAxisType.Top);

            topAxis.SetRange(0, 10);
            topAxis.AddLabel(new ChartAxisLabel("test", 2));
            topAxis.AddLabel(new ChartAxisLabel("test", 6));
            topAxis.FontSize  = 12;
            topAxis.Color     = "FF0000";
            topAxis.Alignment = AxisAlignmentType.Left;
            lineChart.AddAxis(topAxis);

            ChartAxis bottomAxis = new ChartAxis(ChartAxisType.Bottom);

            bottomAxis.AddLabel(new ChartAxisLabel("test", 2));
            bottomAxis.AddLabel(new ChartAxisLabel("test", 6));
            bottomAxis.SetRange(0, 10);
            bottomAxis.FontSize  = 14;
            bottomAxis.Color     = "00FF00";
            bottomAxis.Alignment = AxisAlignmentType.Right;
            lineChart.AddAxis(bottomAxis);

            return(lineChart.GetUrl());
        }