echarts呈現數據表圖形

来源:https://www.cnblogs.com/liuchenxing/archive/2018/06/02/9122954.html
-Advertisement-
Play Games

講一下echarts的用法,列舉了兩個圖表,一個是單柱圖,一個是多柱圖,至於餅狀圖,只許更改echarts的類型就好了 一、首先是要兩個div,用來存放兩個圖表 二、需要用js從後臺獲取json數據(可以從cs頁面獲取,也可以通過一般處理程式,這裡用的一般處理程式) <%--單個柱狀圖--%> <s ...


講一下echarts的用法,列舉了兩個圖表,一個是單柱圖,一個是多柱圖,至於餅狀圖,只許更改echarts的類型就好了

  一、首先是要兩個div,用來存放兩個圖表

  <div class="div-frm" style="height: 275px; font-family: Microsoft YaHei, Verdana, Arial;">
        <div id="barone" style="width: 100%; height: 240px; float: left; font-family: Microsoft YaHei, Verdana, Arial;"></div>
    </div>

    <div style="height: 240px; font-family: Microsoft YaHei, Verdana, Arial;">
        <div id="barthree" class="chart-container" style="width: 100%; height: 240px; float: left; font-family: Microsoft YaHei, Verdana, Arial;"></div>
    </div>

 

  二、需要用js從後臺獲取json數據(可以從cs頁面獲取,也可以通過一般處理程式,這裡用的一般處理程式)

<%--單個柱狀圖--%>
    <script type="text/javascript">

        //初始化
        var dom = document.getElementById("barone");
        var myChart = echarts.init(dom);
        var app = {};
        option = null;
        markPoint = null;

        //圖表使用
        var option = {
            title: {
                text: '成績圖'
            },
            tooltip: {
                trigger: 'axis'
            },
            toolbox: {
                show: true,
                feature: {
                    mark: { show: true },
                    dataView: { show: true, readOnly: false },
                    magicType: { show: true, type: ['line', 'bar'] },
                    restore: { show: true },
                    saveAsImage: { show: true }
                }
            },
            calculable: true,
            xAxis: [
                {
                    type: 'category',
                    data: [""]
                }
            ],
            yAxis: [
                {
                    type: 'value'
                }
            ],
            series: [
                {
                    type: 'bar',
                    data: [""],     //數據顯示的地方,ajax
                    markPoint: {
                        data: [
                            { type: 'max', name: '最大值' },
                            { type: 'min', name: '最小值' }
                        ]
                    },
                    markLine: {
                        data: [
                            { type: 'average', name: '平均值' }
                        ]
                    },
                },

            ],
            dataZoom: [
                {
                    show: false,
                    start: 0,
                    end: 100
                }
            ]
        };

        if (option && typeof option === "object") {
            myChart.setOption(option, true);
        }

        //獲取數據
        $.ajax({
            url: "echartsData/barone.ashx",  //數據來源
            data: { type: "bar" },
            cache: false,
            async: false,
            dataType: 'json',
            success: function (data) {
                if (data) {
                    myChart.setOption({

                        xAxis: [{ data: data.xAxis }],
                        series: [
                            {
                                data: data.series,
                                itemStyle: {      //顯示柱狀圖頂部的數字
                                    normal: {
                                        color: '#2d9fd8',
                                        label: {
                                            show: true,
                                            position: 'top',
                                            textStyle: {
                                                baseline: "bottom"
                                            }
                                        }
                                    }
                                },
                                barWidth: 20
                            }
                        ]
                    });
                }
            },
            error: function (msg) {
                alert("系統發生錯誤1");
            }
        });
    </script>

    <%-- 多個柱狀圖 --%>
    <script type="text/javascript">
        var dom = document.getElementById("barthree");
        var myChart2 = echarts.init(dom);
        var app = {};
        option = null;

        var option = {
            title: {
                text: '成績表'
            },
            tooltip: {
                trigger: 'axis'
            },
            legend: {
                data: ['數學', '語文', '英語']
            },
            toolbox: {
                show: true,
                feature: {
                    mark: { show: true },
                    dataView: { show: true, readOnly: false },
                    magicType: { show: true, type: ['line', 'bar'] },
                    restore: { show: true },
                    saveAsImage: { show: true }
                }
            },
            calculable: true,
            xAxis: [
                {
                    type: 'category',
                    data: [""]
                }
            ],
            yAxis: [
                {
                    type: 'value'
                }
            ],
            series: [
                {
                    name: '訪問來源',
                    type: 'bar',
                    data: [""],
                    itemStyle: {
                        normal: {
                            color: '#2d9fd8',
                            label: {
                                show: true,
                                position: 'top',
                                textStyle: {
                                    baseline: "bottom"
                                }
                            }
                        }
                    },
                    markPoint: {
                        data: [
                            { type: 'max', name: '最大值' },
                            { type: 'min', name: '最小值' }
                        ]
                    },
                    markLine: {
                        data: [
                            { type: 'average', name: '平均值' }
                        ]
                    },
                }
            ],
            dataZoom: [
                {
                    show: false,
                    start: 0,
                    end: 100
                }
            ]
        };

        if (option && typeof option === "object") {
            myChart2.setOption(option, true);
        }

        $.ajax({
            url: "echartsData/barthree.ashx",
            data: { type: "bar" },
            cache: false,
            async: false,
            dataType: 'json',
            success: function (data) {
                if (data) {
                    myChart2.setOption({
                        legend: [{ data: data.legend }],
                        xAxis: [{ data: data.xAxis }],
                        series: data.series
                    });
                }
            },
            error: function (msg) {
                alert("系統發生錯誤");
            }
        });
    </script>
JS代碼

 

  三、在後臺,從資料庫讀取數據

        static string conStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
        JavaScriptSerializer jsS = new JavaScriptSerializer();
        List<object> seriesList = new List<object>();
        List<string> xAxisList = new List<string>();
        string result = "";

        public void ProcessRequest(HttpContext context)
        {
            string command = context.Request["type"];

            switch (command)
            {
                case "bar":
                    GetOverView(context);
                    break;
            };
        }

        public void GetOverView(HttpContext context)
        {
            using (SqlConnection conn = new SqlConnection())
            {
                conn.ConnectionString = conStr;
                conn.Open();

                string sql = "select * from Achievement";
                SqlDataAdapter myda = new SqlDataAdapter(sql, conStr);
                DataTable dt = new DataTable(); // 實例化數據表
                myda.Fill(dt); // 保存數據 

                foreach (DataRow dr in dt.Rows)
                {
                    xAxisList.Add(dr["Name"].ToString());
                    seriesList.Add(dr["Math"].ToString());
                }

                var newObj = new
                {
                    xAxis = xAxisList,
                    series = seriesList
                };

                jsS = new JavaScriptSerializer();
                result = jsS.Serialize(newObj);
                context.Response.Write(result);

                conn.Close(); // 關閉資料庫連接
            }
        }    
單個柱狀圖讀取方式
        static string conStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
        JavaScriptSerializer jsS = new JavaScriptSerializer();
        List<object> seriesList = new List<object>();
        List<string> xAxisList = new List<string>();
        List<string> legendList = new List<string>();
        string result = "";

        public void ProcessRequest(HttpContext context)
        {
            string command = context.Request["type"];

            switch (command)
            {
                case "bar":
                    GetOverView(context);
                    break;
            };
        }

        public void GetOverView(HttpContext context)
        {

            using (SqlConnection conn = new SqlConnection())
            {
                conn.ConnectionString = conStr;
                conn.Open();

                string sql = "select * from Achievement";
                SqlDataAdapter myda = new SqlDataAdapter(sql, conStr);
                DataTable dt = new DataTable(); // 實例化數據表
                myda.Fill(dt); // 保存數據 


                legendList.Add("數學");
                legendList.Add("語文");
                legendList.Add("英語");

                //設置對應的Series信息
                Series UVSeriesObj = new Series();
                UVSeriesObj.name = "數學";
                UVSeriesObj.type = "bar"; //圖呈現  
                UVSeriesObj.data = new List<object>();

                Series UIPSeriesObj = new Series();
                UIPSeriesObj.name = "語文";
                UIPSeriesObj.type = "bar"; //圖呈現  
                UIPSeriesObj.data = new List<object>();

                Series PVSeriesObj = new Series();
                PVSeriesObj.name = "英語";
                PVSeriesObj.type = "bar"; //圖呈現  
                PVSeriesObj.data = new List<object>();

                foreach (DataRow dr in dt.Rows)
                {
                    xAxisList.Add(dr["Name"].ToString());

                    UVSeriesObj.data.Add(dr["Math"]);
                    UIPSeriesObj.data.Add(dr["Chinese"]);
                    PVSeriesObj.data.Add(dr["English"]);
                }

                seriesList.Add(UVSeriesObj);
                seriesList.Add(UIPSeriesObj);
                seriesList.Add(PVSeriesObj);

                var newObj = new
                {
                    legend = legendList,    //三門學科
                    xAxis = xAxisList,
                    series = seriesList
                };

                jsS = new JavaScriptSerializer();
                result = jsS.Serialize(newObj);
                context.Response.Write(result);
            }
        }


        public bool IsReusable
        {
            get
            {
                return false;
            }
        }


        class Series
        {
            /// <summary>  
            /// series序列組名稱  
            /// </summary>  
            public string name
            {
                get;
                set;
            }

            /// <summary>  
            /// series序列組呈現圖表類型(line、column、bar等)  
            /// </summary>  
            public string type
            {
                get;
                set;
            }

            /// <summary>  
            /// series序列組的數據為數據類型數組  
            /// </summary>  
            public List<object> data
            {
                get;
                set;
            }
        }        
多個柱狀圖讀取方式

  

  echarts官方api文檔:http://echarts.baidu.com/echarts2/doc/example.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 要求: 1、創建三個游戲人物,分別是: 蒼井井,女,18,初始戰鬥力1000 東尼木木,男,20,初始戰鬥力1800 波多多,女,19,初始戰鬥力2500 2、游戲場景,分別: 草叢戰鬥,消耗200戰鬥力 自我修煉,增長100戰鬥力 多人游戲,消耗500戰鬥力 ...
  • 在生活中我們時常會遇到同步的問題,而且大多數的實際問題都是線程的同步問題 我這裡以生活中的火車售票來進行舉例: 假設現在我們總共有1000張票要進行出售,共有10個出售點,那麼當售票到最後只有一張票時,每個售票點如何去處理這唯一的一張票?或者對於某一張票而言,假設它正在售票站1售票的程式執行過程中, ...
  • Java的迴圈跳轉語句一:Java迴圈跳轉語句之 break;二:Java迴圈跳轉語句之 continue; ...
  • 首先要談的是,今天的話題所聊的程式員包含哪些人? 在中國,寫程式,不僅僅是一種興趣,更多的時候,還是一種普通職業和謀生工具 大公司有厲害的程式員,優秀的架構師,但大量的小公司也有很多普通的程式員。在我這些年的工作經歷中,也越來越深刻的感受到普通程式員的影響和力量。對於高階程式員,所謂八仙過海各有神通 ...
  • 內容轉自網路(具體轉載哪裡忘記了,有知道的) 前言 代碼優化,一個很重要的課題。可能有些人覺得沒用,一些細小的地方有什麼好修改的,改與不改對於代碼的運行效率有什麼影響呢?這個問題我是這麼考慮的,就像大海裡面的鯨魚一樣,它吃一條小蝦米有用嗎?沒用,但是,吃的小蝦米一多之後,鯨魚就被喂飽了。代碼優化也是 ...
  • 以下是 基類 Form1 // 委托、事件是 public 和全局的 public delegate void ButtonClickdHandle(object sender, EventArgs e);//定義委托 public event ButtonClickdHandle UserCont ...
  • 轉發請註明出處:https://www.cnblogs.com/zhiyong-ITNote/p/9127001.html 實在沒有找到Unity容器的AOP應用程式示例的說明,在微軟官網找到了教程(https://docs.microsoft.com/zh-cn/previous-versions ...
  • 在接下來的這篇文章中,我將向大家介紹.NET中的線程API,怎麼樣用C#創建線程,啟動和停止線程,設置優先順序和狀態.在.NET中編寫的程式將被自動的分配一個線程.讓我們來看看用C#編程語言創建線程並且繼續學習線程的知識。我們都知道.NET的運行時環境的主線程由Main ()方法來啟動應用程式,而且. ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...