ECharts入門(一)

一樊拓、簡單入門

1.從官網(wǎng)下載echarts

http://echarts.baidu.com/download.html

2.引入echarts

  • 3.0以上的版本

    <html>
    <head>
        <meta charset="utf-8">
        <!-- 引入 ECharts 文件 -->
        <script src="echarts.min.js"></script>
    </head>
    </html>
    

3.繪制柱狀圖表

  • 首先在頁面上設(shè)置一個顯示區(qū)域

    <body>
        <!-- 為 ECharts 準(zhǔn)備一個具備大斜矍蕖(寬高)的 DOM -->
        <div id="main" style="width: 600px;height:400px;"></div>
    </body>
    
  • 然后通過 echarts.init 方法初始化一個 echarts 實例并通過 setOption 方法生成一個簡單的柱狀圖

     <script type="text/javascript">
            // 基于準(zhǔn)備好的dom嗜侮,初始化echarts實例
            var myChart = echarts.init(document.getElementById('main'));
    
            // 指定圖表的配置項和數(shù)據(jù)
            var option = {
                title: {
                    text: 'ECharts 入門示例'
                },
                tooltip: {},
                legend: {
                    data:['銷量']
                },
                xAxis: {
                    data: ["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"]
                },
                yAxis: {},
                series: [{
                    name: '銷量',
                    type: 'bar',
                    data: [5, 20, 36, 10, 10, 20]
                }]
            };
    
            // 使用剛指定的配置項和數(shù)據(jù)顯示圖表刊咳。
            myChart.setOption(option);
        </script>
    

二鲁冯、自定義ECharts

  • 一般官方定制的echarts會滿足絕大部分業(yè)務(wù)需求鹦筹,但有時也需要自定義一些echarts介衔。
  1. 在線自定義構(gòu)建:比較方便。
  2. 使用 echarts/build/build.js 腳本自定義構(gòu)建:比在線構(gòu)建更靈活一點,并且支持多語言航缀。
  3. 直接使用構(gòu)建工具(如 rollup商架、webpackbrowserify)自己構(gòu)建:也是一種選擇芥玉。

三蛇摸、餅狀圖

  • 最簡單的圖表,不需要x y 軸灿巧。

    myChart.setOption({
        series : [
            {
                name: '訪問來源',
                type: 'pie',
                radius: '55%',
                data:[
                    {value:235, name:'視頻廣告'},
                    {value:274, name:'聯(lián)盟廣告'},
                    {value:310, name:'郵件營銷'},
                    {value:335, name:'直接訪問'},
                    {value:400, name:'搜索引擎'}
                ]
            }
        ]
    })
    
  • 設(shè)置樣式

    option = {
        //設(shè)置全局背景色
        backgroundColor: '#2c343c',
        visualMap: {
                // 不顯示 visualMap 組件赶袄,只用于明暗度的映射
                show: false,
                // 映射的最小值為 80
                min: 80,
                // 映射的最大值為 600
                max: 600,
                inRange: {
                    // 明暗度的范圍是 0 到 1
                    colorLightness: [0, 1]
                }
            },
        series : [
            {
                name: '訪問來源',
                type: 'pie',
                radius: '55%',
                data:[
                    {value:235, name:'視頻廣告'},
                    {value:274, name:'聯(lián)盟廣告'},
                    {value:310, name:'郵件營銷'},
                    {value:335, name:'直接訪問'},
                    {
                        value:400,
                        name:'搜索引擎',
                        //設(shè)置每個扇形的樣式
                        itemStyle: {
                            color: '#c23531'
                        }
                    },
                ],
                //設(shè)置成南丁格爾圖
                roseType: 'angle',
                //設(shè)置全局字體樣式
                 textStyle: {
                    color: 'rgba(255, 255, 255, 0.3)'
                }
                //設(shè)置每個系利的字體樣式
                  label: {
                    normal: {
                        textStyle: {
                            color: 'rgba(255, 255, 255, 0.3)'
                        }
                    }
                },
               //設(shè)置視覺引導(dǎo)線的樣式
                labelLine: {
                    normal: {
                        lineStyle: {
                            color: 'rgba(255, 255, 255, 0.3)'
                        }
                    }
                },
               //設(shè)置扇形的樣式
                itemStyle: {
                        // 陰影的大小
                        shadowBlur: 200,
                        // 陰影水平方向上的偏移
                        shadowOffsetX: 0,
                        // 陰影垂直方向上的偏移
                        shadowOffsetY: 0,
                        // 陰影顏色
                        shadowColor: 'rgba(0, 0, 0, 0.5)'
                    // 設(shè)置扇形的顏色
                         color: '#c23531',
                    }
                }
            }
        ]
    };
    

四、ECharts 中的樣式簡介

1.顏色主題

? var chart = echarts.init(dom, 'light');

? var chart = echarts.init(dom, 'dark');

  • 設(shè)置json格式的主題

    // 假設(shè)主題名稱是 "vintage"  xxx/xxx/ 代表路徑
    $.getJSON('xxx/xxx/vintage.json', function (themeJSON) {
        echarts.registerTheme('vintage', JSON.parse(themeJSON))
        var chart = echarts.init(dom, 'vintage');
    });
    
  • 設(shè)置js格式的主題

    // HTML 引入 vintage.js 文件后(假設(shè)主題名稱是 "vintage")
    var chart = echarts.init(dom, 'vintage');
    

2.調(diào)色盤

  • 在option中全局設(shè)置

    option = {
        // 全局調(diào)色盤抠藕。
        color: ['#c23531','#2f4554', '#61a0a8', '#d48265', '#91c7ae','#749f83',  '#ca8622', '#bda29a','#6e7074', '#546570', '#c4ccd3'],
    
        series: [{
            type: 'bar',
            // 此系列自己的調(diào)色盤饿肺。
            color: ['#dd6b66','#759aa0','#e69d87','#8dc1a9','#ea7e53','#eedd78','#73a373','#73b9bc','#7289ab', '#91ca8c','#f49f42'],
            ...
        }, {
            type: 'pie',
            // 此系列自己的調(diào)色盤。
            color: ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C','#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'],
            ...
        }]
    }
    

3.直接設(shè)置樣式

  • 鼠標(biāo)懸浮時的高亮樣式

    //4.0版本的寫法
    option = {
        series: {
            type: 'scatter',
    
            // 普通樣式盾似。
            itemStyle: {
                // 點的顏色敬辣。
                color: 'red'
            },
            label: {
                show: true,
                // 標(biāo)簽的文字。
                formatter: 'This is a normal label.'
            },
    
            // 高亮樣式零院。
            emphasis: {
                itemStyle: {
                    // 高亮?xí)r點的顏色溉跃。
                    color: 'blue'
                },
                label: {
                    show: true,
                    // 高亮?xí)r標(biāo)簽的文字。
                    formatter: 'This is a emphasis label.'
                }
            }
        }
    }
    //4.0之前的版本寫法告抄,但是不推薦
    option = {
        series: {
            type: 'scatter',
    
            itemStyle: {
                // 普通樣式撰茎。
                normal: {
                    // 點的顏色。
                    color: 'red'
                },
                // 高亮樣式打洼。
                emphasis: {
                    // 高亮?xí)r點的顏色龄糊。
                    color: 'blue'
                }
            },
    
            label: {
                // 普通樣式。
                normal: {
                    show: true,
                    // 標(biāo)簽的文字募疮。
                    formatter: 'This is a normal label.'
                },
                // 高亮樣式炫惩。
                emphasis: {
                    show: true,
                    // 高亮?xí)r標(biāo)簽的文字。
                    formatter: 'This is a emphasis label.'
                }
            }
        }
    }
    

4.通過 visualMap 組件設(shè)定樣式

  • visualMap是視覺映射組件阿浓,提供了以下視覺元素:

    圖形類別(symbol)诡必、圖形大小(symbolSize) 顏色(color)搔扁、透明度(opacity)爸舒、色調(diào)(colorHue)

    顏色透明度(colorAlpha)顏色明暗度(colorLightness)稿蹲、顏色飽和度(colorSaturation)

五扭勉、異步數(shù)據(jù)加載和更新

1.異步加載

  • 圖表初始化后不管任何時候通過 jQuery 等工具異步獲取數(shù)據(jù)后通過 setOption 填入數(shù)據(jù)和配置項

    var myChart = echarts.init(document.getElementById('main'));
    
    $.get('data.json').done(function (data) {
        myChart.setOption({
            title: {
                text: '異步數(shù)據(jù)加載示例'
            },
            tooltip: {},
            legend: {
                data:['銷量']
            },
            xAxis: {
                data: ["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"]
            },
            yAxis: {},
            series: [{
                name: '銷量',
                type: 'bar',
                data: [5, 20, 36, 10, 10, 20]
            }]
        });
    });
    
  • 先設(shè)置完其它的樣式,顯示一個空的直角坐標(biāo)軸苛聘,然后獲取數(shù)據(jù)后填入數(shù)據(jù)涂炎。

    var myChart = echarts.init(document.getElementById('main'));
    // 顯示標(biāo)題忠聚,圖例和空的坐標(biāo)軸
    myChart.setOption({
        title: {
            text: '異步數(shù)據(jù)加載示例'
        },
        tooltip: {},
        legend: {
            data:['銷量']
        },
        xAxis: {
            data: []
        },
        yAxis: {},
        series: [{
            name: '銷量',
            type: 'bar',
            data: []
        }]
    });
    
    // 異步加載數(shù)據(jù)
    $.get('data.json').done(function (data) {
        // 填入數(shù)據(jù)
        myChart.setOption({
            xAxis: {
                data: data.categories
            },
            series: [{
                // 根據(jù)名字對應(yīng)到相應(yīng)的系列
                name: '銷量',
                data: data.data
            }]
        });
    });
    

2.loading動畫

  • 有時數(shù)據(jù)加載時間過長的話,需要一些過場動畫唱捣。

    //顯示加載動畫
    myChart.showLoading();
    $.get('data.json').done(function (data) {
       //隱藏加載動畫
        myChart.hideLoading();
        myChart.setOption(...);
    });
    

3.數(shù)據(jù)的動態(tài)更新

  • 定時獲取數(shù)據(jù)两蟀,setOption 填入數(shù)據(jù),ECharts 會找到兩組數(shù)據(jù)之間的差異然后通過合適的動畫去表現(xiàn)數(shù)據(jù)的變化震缭。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赂毯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子拣宰,更是在濱河造成了極大的恐慌党涕,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巡社,死亡現(xiàn)場離奇詭異膛堤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)晌该,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門肥荔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人朝群,你說我怎么就攤上這事次企。” “怎么了潜圃?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長舟茶。 經(jīng)常有香客問我谭期,道長,這世上最難降的妖魔是什么吧凉? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任隧出,我火速辦了婚禮,結(jié)果婚禮上阀捅,老公的妹妹穿的比我還像新娘胀瞪。我一直安慰自己,他們只是感情好饲鄙,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布凄诞。 她就那樣靜靜地躺著,像睡著了一般忍级。 火紅的嫁衣襯著肌膚如雪帆谍。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天轴咱,我揣著相機(jī)與錄音汛蝙,去河邊找鬼烈涮。 笑死,一個胖子當(dāng)著我的面吹牛窖剑,可吹牛的內(nèi)容都是我干的坚洽。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼西土,長吁一口氣:“原來是場噩夢啊……” “哼讶舰!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起翠储,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤绘雁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后援所,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庐舟,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年住拭,在試婚紗的時候發(fā)現(xiàn)自己被綠了挪略。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡滔岳,死狀恐怖杠娱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谱煤,我是刑警寧澤摊求,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站刘离,受9級特大地震影響室叉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜硫惕,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一茧痕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧恼除,春花似錦踪旷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至徽级,卻和暖如春彩掐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背灰追。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工堵幽, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留狗超,地道東北人。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓朴下,卻偏偏與公主長得像努咐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子殴胧,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 這篇文章主要講述Echarts設(shè)置字體和線條的顏色相關(guān)操作筆記渗稍,希望文章對你有所幫助,主要是自己的在線筆記吧团滥。我在...
    藍(lán)色夢想家閱讀 9,882評論 1 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理竿屹,服務(wù)發(fā)現(xiàn),斷路器灸姊,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • 內(nèi)購規(guī)范文檔:https://developer.apple.com/app-store/review/guide...
    wangyu2488閱讀 14,249評論 21 17
  • 生活中的小驚喜拱燃,帶給精神上的快樂是無與倫比。從去年開始給布倫山平臺投第一篇稿到今天力惯,恰好一周年碗誉。今天接到《華山風(fēng)》...
    雨蕭_7e68閱讀 142評論 0 0