.NET 8 Framework C# (C-Sharp)

Google Charts with ASP.NET

ตัวอย่างการใช้งาน Google Charts โดยใช้ .NET 8 Framework, C# (C-Sharp)

Google Charts with ASP.NET
Ake SuwaphanAke Suwaphan
08 February 2024

Google Charts with ASP.NET

Google Charts เป็นเครื่องมือสร้างกราฟและแผนภูมิแบบโต้ตอบบนเว็บฟรี ใช้งานง่าย และมีประสิทธิภาพ ช่วยให้นักพัฒนาเว็บสามารถแสดงข้อมูลในรูปแบบที่เข้าใจง่าย ดึงดูดสายตา และน่าสนใจ

จุดเด่นของ Google Charts

  • ใช้งานง่าย Google Charts มี API ที่ใช้งานง่าย ช่วยให้นักพัฒนาเว็บสามารถสร้างกราฟและแผนภูมิได้อย่างรวดเร็ว
  • ฟรี Google Charts เป็นเครื่องมือฟรีที่สามารถใช้ได้กับเว็บไซต์ทุกประเภท
  • มีประสิทธิภาพ Google Charts ทำงานได้อย่างราบรื่นบนอุปกรณ์ทุกประเภท รวมถึงอุปกรณ์พกพา
  • หลากหลาย Google Charts มีกราฟและแผนภูมิให้เลือกใช้มากมาย
  • ปรับแต่งได้ Google Charts สามารถปรับแต่งได้หลากหลาย ช่วยให้นักพัฒนาเว็บสามารถสร้างกราฟและแผนภูมิที่ตรงกับความต้องการ
  • โต้ตอบ Google Charts รองรับการโต้ตอบ ช่วยให้ผู้ใช้สามารถดูข้อมูลในกราฟและแผนภูมิได้อย่างละเอียด

ตัวอย่างการใช้งาน Google Charts โดยใช้ .NET 8 Framework, C# (C-Sharp)

เพิ่มคลาส public class ChartDataModel ในส่วนของ Model

    public class ChartDataModel
    {
        public string? year { get; set; }
        public int? sales { get; set; }
        public int? expenses { get; set; }
        public int? profit { get; set; }
    }

เพิ่ม public JsonResult DataSample() ในส่วนของ Controller

        public JsonResult DataSample()
        {
            var data = new List<ChartDataModel>();

            var random = new Random();
            int start = DateTime.Now.Year - 4;
            int end = DateTime.Now.Year;

            for (int i = start; i <= end; i++)
            {
                int _sales = random.Next(1000000, 99999999);
                int _expenses = random.Next(1000000, 99999999);

                data.Add(
                    new ChartDataModel
                    {
                        year = i.ToString(),
                        sales = _sales,
                        expenses = _expenses,
                        profit = _sales - _expenses
                    });
            }

            return Json(data);
        }

เพิ่ม JavaScript ในส่วนของ View

        function drawChart() {
            $(function () {
                $.ajax({
                    url: "@Url.Action("DataSample", "Home")",
                    data: JSON.stringify(),
                    type: 'POST',
                    dataType: 'html',
                    contentType: "application/json; charset=utf-8",
                    success: function (response) {
                        var Data = JSON.parse(response);
                        var data = new google.visualization.DataTable();

                        data.addColumn('string', 'Year');
                        data.addColumn('number', 'Sales');
                        data.addColumn('number', 'Expenses');
                        data.addColumn('number', 'Profit');

                        for (var i = 0; i < Data.length; i++) {
                            data.addRow([Data[i].year, Data[i].sales, Data[i].expenses, Data[i].profit]);
                        }

                        /*** options and google.visualization.???Chart ***/

                    },
                    error: function () {
                        alert("Error loading data! Please try again.");
                    }
                });
            })
        }

options and google.visualization.AreaChart

                        var areaOptions = {
                            title: 'Area Chart',
                            hAxis: { title: 'Year', titleTextStyle: { color: '#333' } },
                            vAxis: { minValue: 0 }
                        };
                        var areaChart = new google.visualization.AreaChart(document.getElementById('areaChart'));
                        areaChart.draw(data, areaOptions);

options and google.visualization.BarChart

                        var barOptions = {
                            title: 'Horizontal Bar Chart',
                            bars: 'horizontal'
                        };
                        var barChart = new google.visualization.BarChart(document.getElementById('barChart'));
                        barChart.draw(data, barOptions);

options and google.visualization.BubbleChart

                        var bubbleOptions = {
                            title: 'Bubble Chart',
                            bubble: { textStyle: { fontSize: 11 } }
                        };
                        var bubbleChart = new google.visualization.BubbleChart(document.getElementById('bubbleChart'));
                        bubbleChart.draw(data, bubbleOptions);

options and google.visualization.ColumnChart

                        var columnOptions = {
                            title: 'Column Chart'
                        };
                        var columnChart = new google.visualization.ColumnChart(document.getElementById('columnChart'));
                        columnChart.draw(data, columnOptions);

options and google.visualization.ColumnChart

                        var comboOptions = {
                            title: 'Combo Chart',
                            series: {
                                0: { type: 'line' },
                                1: { type: 'line' }
                            },
                        };
                        var comboChart = new google.visualization.ColumnChart(document.getElementById('comboChart'));
                        comboChart.draw(data, comboOptions);

options and google.visualization.PieChart

                        var donutOptions = {
                            title: 'Donut Chart',
                            pieHole: 0.5
                        };
                        var donutChart = new google.visualization.PieChart(document.getElementById('donutChart'));
                        donutChart.draw(data, donutOptions);

options and google.visualization.LineChart

                        var lineOptions = {
                            title: 'Line Chart',
                            curveType: 'function',
                            legend: { position: 'right' }
                        };
                        var lineChart = new google.visualization.LineChart(document.getElementById('lineChart'));
                        lineChart.draw(data, lineOptions);

options and google.visualization.PieChart

                        var pieOptions = {
                            title: 'Pie Chart'
                        };
                        var pieChart = new google.visualization.PieChart(document.getElementById('pieChart'));
                        chart.draw(data);

options and google.visualization.PieChart

                        var is3dOptions = {
                            title: 'is3D Chart',
                            is3D: true
                        };
                        var is3dChart = new google.visualization.PieChart(document.getElementById('is3dChart'));
                        is3dChart.draw(data, is3dOptions);

options and google.visualization.PieChart

                        var sliceOptions = {
                            title: 'Slice Chart',
                            legend: 'none',
                            pieSliceText: 'label',
                            slices: {
                                4: { offset: 0.2 },
                                12: { offset: 0.3 },
                                14: { offset: 0.4 },
                                15: { offset: 0.5 },
                            },
                        };
                        var sliceChart = new google.visualization.PieChart(document.getElementById('sliceChart'));
                        sliceChart.draw(data, sliceOptions);