コード例 #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());
        }
コード例 #2
0
        public static string axesLabelsTest()
        {
            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("Axis Labels Test", "0000FF", 14);
            lineChart.SetData(dataset);
            lineChart.AddAxis(new ChartAxis(ChartAxisType.Bottom, new string[] { "b", "o", "t", "t", "o", "m" }));
            lineChart.AddAxis(new ChartAxis(ChartAxisType.Left, new string[] { "l", "e", "f", "t" }));

            ChartAxis rightAxis = new ChartAxis(ChartAxisType.Right);

            rightAxis.AddLabel(new ChartAxisLabel("r"));
            rightAxis.AddLabel(new ChartAxisLabel("i"));
            rightAxis.AddLabel(new ChartAxisLabel("g"));
            rightAxis.AddLabel(new ChartAxisLabel("h"));
            rightAxis.AddLabel(new ChartAxisLabel("t"));
            lineChart.AddAxis(rightAxis);

            ChartAxis topAxis = new ChartAxis(ChartAxisType.Top);

            topAxis.AddLabel(new ChartAxisLabel("t"));
            topAxis.AddLabel(new ChartAxisLabel("o"));
            topAxis.AddLabel(new ChartAxisLabel("p"));
            lineChart.AddAxis(topAxis);

            return(lineChart.GetUrl());
        }
コード例 #3
0
        public static string multiLineAreaFillsTest()
        {
            float[] line1 = new float[] { 15, 45, 5, 30, 10 };
            float[] line2 = new float[] { 35, 65, 25, 50, 30 };
            float[] line3 = new float[] { 55, 85, 45, 70, 50 };

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

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

            LineChart lineChart = new LineChart(250, 150, LineChartType.SingleDataSet);

            lineChart.SetTitle("Area fills test");
            lineChart.SetData(dataset);

            lineChart.AddAxis(new ChartAxis(ChartAxisType.Left));
            lineChart.AddAxis(new ChartAxis(ChartAxisType.Bottom));

            lineChart.AddFillArea(new FillArea("FF0000", 0, 1));
            lineChart.AddFillArea(new FillArea("224499", 1, 2));

            return(lineChart.GetUrl());
        }
コード例 #4
0
        public static string stepSizeTest()
        {
            int[]     line1     = new int[] { 5, 10, 50, 34, 10, 25 };
            LineChart lineChart = new LineChart(250, 150);

            lineChart.SetTitle("Step Size Test");
            lineChart.AddAxis(new ChartAxis(ChartAxisType.Left));
            lineChart.AddAxis(new ChartAxis(ChartAxisType.Bottom));
            lineChart.SetData(line1);

            lineChart.SetGrid(20, 50);

            return(lineChart.GetUrl());
        }
コード例 #5
0
        public static string singleLineAreaFillTest()
        {
            float[]   fdata = new float[] { 10, 30, 75, 40, 15 };
            LineChart chart = new LineChart(250, 150);

            chart.SetTitle("Area fill test");
            chart.SetData(fdata);

            chart.AddAxis(new ChartAxis(ChartAxisType.Left));
            chart.AddAxis(new ChartAxis(ChartAxisType.Bottom));

            chart.AddFillArea(new FillArea("224499", 0));

            return(chart.GetUrl());
        }
コード例 #6
0
        public static string stackingAxes()
        {
            ChartAxis bottomAxis  = new ChartAxis(ChartAxisType.Bottom);
            ChartAxis bottomAxis2 = new ChartAxis(ChartAxisType.Bottom);

            bottomAxis2.SetRange(0, 50);

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

            lineChart.AddAxis(bottomAxis);
            lineChart.AddAxis(bottomAxis2);

            lineChart.SetData(line1);
            return(lineChart.GetUrl());
        }
コード例 #7
0
        public static string rangeMarkersTest()
        {
            float[]   fdata = new float[] { 10, 30, 75, 40, 15 };
            LineChart chart = new LineChart(250, 150);

            chart.SetTitle("Range markers test");
            chart.SetData(fdata);

            chart.AddAxis(new ChartAxis(ChartAxisType.Left));
            chart.AddAxis(new ChartAxis(ChartAxisType.Bottom));

            chart.AddRangeMarker(new RangeMarker(RangeMarkerType.Horizontal, "EFEFEF", 0.2, 0.7));
            chart.AddRangeMarker(new RangeMarker(RangeMarkerType.Vertical, "CCCCCC", 0.4, 0.6));

            return(chart.GetUrl());
        }
コード例 #8
0
        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());
        }
コード例 #9
0
        public static string axisLabels()
        {
            ChartAxis leftAxis   = new ChartAxis(ChartAxisType.Left, new string[] { "one", "two", "three" });
            ChartAxis bottomAxis = new ChartAxis(ChartAxisType.Bottom);

            bottomAxis.AddLabel(new ChartAxisLabel("a", 0));
            bottomAxis.AddLabel(new ChartAxisLabel("b", 10));
            bottomAxis.AddLabel(new ChartAxisLabel("c", 50));
            bottomAxis.AddLabel(new ChartAxisLabel("d", 100));

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

            lineChart.AddAxis(leftAxis);
            lineChart.AddAxis(bottomAxis);
            lineChart.SetData(line1);
            return(lineChart.GetUrl());
        }
コード例 #10
0
        public static string shapeMarkersTest()
        {
            float[]   fdata = new float[] { 10, 30, 75, 40, 15 };
            LineChart chart = new LineChart(300, 150);

            chart.SetTitle("Shape markers test");
            chart.SetData(fdata);

            chart.AddAxis(new ChartAxis(ChartAxisType.Left));
            chart.AddAxis(new ChartAxis(ChartAxisType.Bottom));

            chart.AddShapeMarker(new ShapeMarker(ShapeMarkerType.Arrow, "FF0000", 0, 0, 5));
            chart.AddShapeMarker(new ShapeMarker(ShapeMarkerType.Circle, "00FF00", 0, 1, 15));
            chart.AddShapeMarker(new ShapeMarker(ShapeMarkerType.Cross, "0000FF", 0, 2, 15));
            chart.AddShapeMarker(new ShapeMarker(ShapeMarkerType.VerticalLine, "FF0000", 0, 3, 2));

            return(chart.GetUrl());
        }
コード例 #11
0
        public static string solidFillTest()
        {
            int[]     line1     = new int[] { 5, 10, 50, 34, 10, 25 };
            LineChart lineChart = new LineChart(250, 150);

            lineChart.SetTitle("Solid fill test");
            lineChart.SetData(line1);

            lineChart.AddAxis(new ChartAxis(ChartAxisType.Left));
            lineChart.AddAxis(new ChartAxis(ChartAxisType.Bottom));

            SolidFill bgFill        = new SolidFill(ChartFillTarget.Background, "EFEFEF");
            SolidFill chartAreaFill = new SolidFill(ChartFillTarget.ChartArea, "000000");

            lineChart.AddSolidFill(bgFill);
            lineChart.AddSolidFill(chartAreaFill);

            return(lineChart.GetUrl());
        }
コード例 #12
0
        public static string singleDatasetPerLine()
        {
            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("Single Dataset Per Line", "0000FF", 14);
            lineChart.SetData(dataset);
            lineChart.AddAxis(new ChartAxis(ChartAxisType.Bottom));
            lineChart.AddAxis(new ChartAxis(ChartAxisType.Left));

            return(lineChart.GetUrl());
        }
コード例 #13
0
        public static string linearStripesTest()
        {
            float[]   fdata = new float[] { 10, 30, 75, 40, 15 };
            LineChart chart = new LineChart(250, 150);

            chart.SetTitle("Linear Stripes Test");
            chart.SetData(fdata);

            chart.AddAxis(new ChartAxis(ChartAxisType.Left));
            chart.AddAxis(new ChartAxis(ChartAxisType.Bottom));

            LinearStripesFill linearStripesFill = new LinearStripesFill(ChartFillTarget.ChartArea, 0);

            linearStripesFill.AddColorWidthPair("CCCCCC", 0.2);
            linearStripesFill.AddColorWidthPair("FFFFFF", 0.2);
            chart.AddLinearStripesFill(linearStripesFill);

            chart.AddSolidFill(new SolidFill(ChartFillTarget.Background, "EFEFEF"));

            return(chart.GetUrl());
        }
コード例 #14
0
ファイル: Form1.cs プロジェクト: FrankFan/GoogleChartApiDemo
        /// <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());
        }
コード例 #15
0
        public static string allBasicAxesTest()
        {
            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("Basic Axes Test", "0000FF", 14);
            lineChart.SetData(dataset);
            lineChart.AddAxis(new ChartAxis(ChartAxisType.Bottom));
            lineChart.AddAxis(new ChartAxis(ChartAxisType.Left));
            lineChart.AddAxis(new ChartAxis(ChartAxisType.Right));
            lineChart.AddAxis(new ChartAxis(ChartAxisType.Top));

            return(lineChart.GetUrl());
        }
コード例 #16
0
        public static string lineColorAndLegendTest()
        {
            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("Line Color And Legend Test", "0000FF", 14);
            lineChart.SetData(dataset);
            lineChart.AddAxis(new ChartAxis(ChartAxisType.Bottom));
            lineChart.AddAxis(new ChartAxis(ChartAxisType.Left));

            lineChart.SetDatasetColors(new string[] { "FF0000", "00FF00" });
            lineChart.SetLegend(new string[] { "line1", "line2" });

            return(lineChart.GetUrl());
        }
コード例 #17
0
        public static string multiDatasetPerLine()
        {
            int[] line1x = new int[] { 0, 15, 30, 45, 60 };
            int[] line1y = new int[] { 10, 50, 15, 60, 12 };
            int[] line2x = new int[] { 0, 15, 30, 45, 60 };
            int[] line2y = new int[] { 45, 12, 60, 34, 60 };

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

            dataset.Add(line1x);
            dataset.Add(line1y);
            dataset.Add(line2x);
            dataset.Add(line2y);

            LineChart lineChart = new LineChart(250, 150, LineChartType.MultiDataSet);

            lineChart.SetTitle("Multi Dataset Per Line", "0000FF", 14);
            lineChart.SetData(dataset);
            lineChart.AddAxis(new ChartAxis(ChartAxisType.Bottom));
            lineChart.AddAxis(new ChartAxis(ChartAxisType.Left));

            return(lineChart.GetUrl());
        }
コード例 #18
0
        public static string linearGradientFillTest()
        {
            int[]     line1     = new int[] { 5, 10, 50, 34, 10, 25 };
            LineChart lineChart = new LineChart(250, 150);

            lineChart.SetTitle("Linear Gradient fill test");
            lineChart.SetData(line1);

            lineChart.AddAxis(new ChartAxis(ChartAxisType.Left));
            lineChart.AddAxis(new ChartAxis(ChartAxisType.Bottom));

            LinearGradientFill fill = new LinearGradientFill(ChartFillTarget.ChartArea, 45);

            fill.AddColorOffsetPair("FFFFFF", 0);
            fill.AddColorOffsetPair("76A4FB", 0.75);

            SolidFill bgFill = new SolidFill(ChartFillTarget.Background, "EFEFEF");

            lineChart.AddLinearGradientFill(fill);
            lineChart.AddSolidFill(bgFill);

            return(lineChart.GetUrl());
        }
コード例 #19
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());
        }
コード例 #20
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());
        }