亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

使用ECharts實現狀態區間圖

2019-11-19 12:38:10
字體:
來源:轉載
供稿:網友

需求背景

假如有如下圖所示的圖表需要顯示多個網口在一段時間內的多個狀態:y軸用于展示各網口,x軸用于展示時間(分鐘),使用條形圖的不同顏色來表示不同時間區間段的狀態,使用深藍、淺藍、橙色、紅色分別代表正常、繁忙、故障、離線四種狀態。以WAN0為例,圖中則表示了0~10分鐘為正常,10~25分鐘為繁忙,25~45分鐘為故障,45~60分鐘為離線

根據此圖,很容易想到可以用條形圖試試。但后來發現,如果用堆疊條形圖,則每種狀態在每一個網口對應的圖形中只能出現一次,這不能實現需求。于是繼續查閱echart官網示例,終于在自定義類型圖表中找到了一個相似的示例,地址

通過研究示例代碼并進行一番改造,終于實現了上述需求。

在實現的過程中遇到了一個小問題,那就是使用自定義圖表實現chart之后,圖例不好處理。通過查看條形圖的示例,找到了一種顯示圖例的方法,那就是使用空的條形圖來顯示圖例,因為在series里面配置了條形圖并配置name后,echart會自動根據name的值去legend的配置中匹配對應的圖例名字并顯示。

完整代碼如下,保存于本地之后再自己去echart官網下載庫文件(完整版)之后即可運行:

<!doctype html><html><head>  <meta charset="utf-8"></head><body>  <div id="chart-box" style="width:400px;height:300px;border:1px solid black;"></div>  <script src="./echarts.min.js"></script>  <script>    // 初始化echart    var chart = echarts.init(document.getElementById('chart-box'));    // 各狀態的顏色    var colors = ['#2f4554', '#61a0a8', '#d48265', '#c23531'];    // 四種狀態    var state = ['正常', '繁忙', '故障', '離線'];    // echart配置    var opt = {      color: colors,      tooltip: {        formatter: function (params) {          return params.name + ':' + params.value[1] + '~' + params.value[2];        }      },      legend: {        data: state,        bottom: '1%',        selectedMode: false, // 圖例設為不可點擊        textStyle: {          color: '#000'        }      },      grid: {        left: '3%',        right: '3%',        top: '1%',        bottom: '10%',        containLabel: true      },      xAxis: {        min: 0 // x軸零刻度對應的實際值      },      yAxis: {        data: ['WAN0', 'WAN1']      },      series: [        // 用空bar來顯示四個圖例        {name: state[0], type: 'bar', data: []},        {name: state[1], type: 'bar', data: []},        {name: state[2], type: 'bar', data: []},        {name: state[3], type: 'bar', data: []},        {          type: 'custom',          renderItem: function (params, api) {            var categoryIndex = api.value(0);            var start = api.coord([api.value(1), categoryIndex]);            var end = api.coord([api.value(2), categoryIndex]);            var height = 24;            return {              type: 'rect',              shape: echarts.graphic.clipRectByRect({                x: start[0],                y: start[1] - height / 2,                width: end[0] - start[0],                height: height              }, {                x: params.coordSys.x,                y: params.coordSys.y,                width: params.coordSys.width,                height: params.coordSys.height              }),              style: api.style()            };          },          encode: {            x: [1, 2],            y: 0          },          data: [            {              itemStyle: { normal: { color: colors[0] } },              name: '正常',              value: [0, 0, 10]            },            {              itemStyle: { normal: { color: colors[1] } },              name: '繁忙',              value: [0, 10, 25]            },            {              itemStyle: { normal: { color: colors[2] } },              name: '故障',              value: [0, 25, 45]            },            {              itemStyle: { normal: { color: colors[3] } },              name: '離線',              value: [0, 45, 60]            },            {              itemStyle: { normal: { color: colors[0] } },              name: '正常',              value: [1, 0, 15]            },            {              itemStyle: { normal: { color: colors[1] } },              name: '繁忙',              value: [1, 15, 20]            },            {              itemStyle: { normal: { color: colors[2] } },              name: '故障',              value: [1, 20, 35]            },            {              itemStyle: { normal: { color: colors[3] } },              name: '離線',              value: [1, 35, 40]            },            {              itemStyle: { normal: { color: colors[0] } },              name: '正常',              value: [1, 40, 45]            },            {              itemStyle: { normal: { color: colors[3] } },              name: '離線',              value: [1, 45, 60]            }          ]        }      ]    };    chart.setOption(opt);  </script></body></html>

對于自定義圖表的data字段里數據項:

{  itemStyle: { normal: { color: colors[0] } },  name: '正常',  value: [0, 0, 10]}
  • itemStyle: 所渲染的矩形的樣式
  • name: 該矩形的狀態名
  • value: 第0項代表類別標識,例如0就代表WAN0的,1就是WAN1的;第1和第2項代表該矩形區域對應的x坐標范圍開始于0,結束于1。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品久久久久| 在线观看久久久久久| 日本一区二区三区在线播放| 国产亚洲精品成人av久久ww| 久久久久久久久久久免费| 欧美日韩国产999| 日韩大陆毛片av| 国产精品激情av电影在线观看| 精品国产91久久久| 欧美一区二区三区免费视| xxxxx91麻豆| 亚洲国内精品视频| 亚洲人成77777在线观看网| 亚洲欧美综合精品久久成人| 国产日产久久高清欧美一区| 欧美极品美女视频网站在线观看免费| 久久久久久久久久久久av| 日韩免费在线播放| 色噜噜亚洲精品中文字幕| 亚洲欧美另类自拍| 97色在线播放视频| 中文一区二区视频| 午夜精品一区二区三区在线播放| 丝袜情趣国产精品| 欧美视频在线观看免费网址| 九九热精品视频| 亚洲精品电影网在线观看| 亚洲全黄一级网站| 性金发美女69hd大尺寸| 国产精品1区2区在线观看| 精品国产一区二区三区久久久狼| 久久久久久一区二区三区| 91精品国产91久久久久久最新| 九色91av视频| 欧美激情videos| 日韩电视剧在线观看免费网站| 国产91精品黑色丝袜高跟鞋| 51ⅴ精品国产91久久久久久| 亚洲性生活视频在线观看| 日本不卡免费高清视频| 日韩免费在线电影| 国产精品高潮在线| 欧美激情va永久在线播放| 国产成人+综合亚洲+天堂| 亚洲成人网在线观看| 亚洲精品美女久久| 亚洲精品一区二区网址| 中文国产成人精品久久一| 成人欧美一区二区三区黑人孕妇| 日韩网站在线观看| 日韩高清中文字幕| 久久国产精品影视| 日本久久91av| 久久久久久欧美| 成人av色在线观看| 亚洲精品日韩丝袜精品| 国产精品一区二区久久| 国产精品一区二区电影| 亚洲欧美日本精品| 日韩精品视频免费在线观看| 亚洲黄色av女优在线观看| 2019国产精品自在线拍国产不卡| 亚洲最新视频在线| 中文字幕久热精品视频在线| 深夜福利91大全| 亚洲国产三级网| 欧美日韩国产成人在线| 92版电视剧仙鹤神针在线观看| 亚洲电影免费观看高清| 国产精品看片资源| 亚洲**2019国产| 欧美激情乱人伦一区| 国产一区二区三区在线观看视频| 午夜精品福利电影| 中文字幕精品视频| 亚洲图片欧美日产| 日韩美女视频免费在线观看| 日本午夜人人精品| 久久综合色影院| 国产精品人成电影在线观看| 91丝袜美腿美女视频网站| 中文字幕自拍vr一区二区三区| 欧美成人性生活| 久久久免费观看| 成人激情黄色网| 欧美中文字幕在线视频| 亚洲欧美制服另类日韩| 欧美多人爱爱视频网站| 欧美性开放视频| 成人动漫网站在线观看| 日韩有码在线观看| 久久久视频精品| 另类少妇人与禽zozz0性伦| 欧美性生交xxxxx久久久| 国内精品久久久久影院 日本资源| 亚洲最大福利视频网站| 456国产精品| 国产免费一区二区三区在线能观看| 欧美一区亚洲一区| 国产精品久久久久久五月尺| 青草热久免费精品视频| 成人激情视频在线观看| 亚洲18私人小影院| 5252色成人免费视频| 2019中文字幕免费视频| 久久久久九九九九| 91精品国产沙发| 51ⅴ精品国产91久久久久久| 欧美丰满少妇xxxx| 免费91在线视频| 亚洲欧美国产另类| 北条麻妃久久精品| 日韩免费高清在线观看| 中文字幕精品www乱入免费视频| 久久久91精品国产一区不卡| 岛国av一区二区在线在线观看| 日本伊人精品一区二区三区介绍| 免费不卡欧美自拍视频| 久久久999国产精品| 久久精品在线播放| 96精品久久久久中文字幕| 国产精品青青在线观看爽香蕉| 2018中文字幕一区二区三区| 国产97在线播放| 日本电影亚洲天堂| 91探花福利精品国产自产在线| 久久亚洲精品网站| 亚洲人成在线免费观看| 日韩精品在线免费| 欧美大片在线免费观看| 欧美丝袜一区二区| 91在线网站视频| 国产精品三级久久久久久电影| 啪一啪鲁一鲁2019在线视频| 国产日韩欧美夫妻视频在线观看| 久久久久五月天| 欧美夜福利tv在线| 国产激情999| 91国语精品自产拍在线观看性色| 国产精品一区二区av影院萌芽| 亚州欧美日韩中文视频| 在线播放精品一区二区三区| 国产视频在线一区二区| 77777少妇光屁股久久一区| 国产盗摄xxxx视频xxx69| 福利一区视频在线观看| 欧美成人精品不卡视频在线观看| 欧美极品美女电影一区| 欧美一区在线直播| 日韩av电影中文字幕| 91综合免费在线| 国产成人精品最新| 国产成人久久久精品一区| 久久久久久久色| 久久精品国产一区二区电影| 免费97视频在线精品国自产拍| 亚洲精品福利资源站| 亚洲国产精品va在线看黑人动漫| 欧美另类极品videosbestfree| 亚洲成人黄色在线观看| 国产精品xxxxx| 色综合久久悠悠| 欧美成人中文字幕| 国产精品第100页|