首頁 > 軟體

Vue匯入Echarts實現折線圖

2022-12-17 14:00:25

前言

本篇來學習下折線圖的實現

折線圖特點

折線圖更多的使用來呈現資料隨時間的變化趨勢

折線圖實現步驟

  • ECharts 最基本的程式碼結構
  • 準備x軸的資料
  • 準備 y 軸的資料
  • 準備 option , 將 series 中的 type 的值設定為: bar

完整程式碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ECharts-折線圖</title>
    <!-- cdn方式 引入echarts.js檔案 -->
    <script src="https://cdn.jsdelivr.net/npm/echarts@5.4.1/dist/echarts.min.js"></script>
</head>
<body>
<!-- 準備一個呈現圖表的盒子 -->
<div id='app' style="width: 600px;height: 400px"></div>
<script>
    // 初始化echarts範例物件
    var myCharts = echarts.init(document.getElementById('app'))
    // 2.準備x軸資料
    var xDataArr = ['張三', '李四', '王五', '閏土', '小明', '茅臺', '球球']
    // 3. 準備y軸資料
    var yDataArr = [88, 92, 63, 77, 94, 80, 72]
    // 4. 準備設定項
    var option = {
        xAxis: {
            type: 'category',
            data: xDataArr
        },
        yAxis: {
            type: 'value'
        },
        series: [
            {
                type: 'bar',
                data: yDataArr
            }
        ]
    }
    // 步驟5:將設定項設定給echarts範例物件
    myCharts.setOption(option)
</script>
</body>
</html>

效果

折線圖常見效果

標記

markPoint:最大值/最小值

 markPoint: {
        data: [
              {
                  type: 'max',
                  name: '最大值'
              }, {
                  type: 'min',
                  name: '最小值'
              }
          ]
      }

markLine:平均值

 markLine: {
        data: [
         {
            type: 'average',
            name: '平均值'
         }
       ]
     }

markArea:標註區間

markArea: { // 標註區間
      data: [
              [{xAxis: '2月'}, {xAxis: '3月'}],
              [{xAxis: '8月'}, {xAxis: '9月'}]
          ]
      }

線條控制

smooth:平滑線條

 var option = {
  series: [
   {
      ......
	smooth: true  // 平滑線條
   }
 ]
}

lineStyle:線條樣式

var option = {
  series: [
   {
      ......
      lineStyle: {
        color: 'green',   // 線條顏色
        type: 'dashed'   //可選值還有 dotted:虛線  solid:實線
     }
   }
 ]
}

填充風格

areaStyle:填充風格

var option = {
  series: [
   {
      type: 'line',
      data: yDataArr,
      areaStyle: {
        color: 'pink'
     }
   }
 ]
}

緊挨邊緣

boundaryGap:是設定給 x 軸的, 讓起點從 x 軸的0座標開始

var option = {
  xAxis: {
    type: 'category',
    data: xDataArr,
    boundaryGap: false //  讓起點從 x 軸的0座標開始
 }
}

完整程式碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ECharts-折線圖</title>
    <!-- cdn方式 引入echarts.js檔案 -->
    <script src="https://cdn.jsdelivr.net/npm/echarts@5.4.1/dist/echarts.min.js"></script>
</head>
<body>
<!-- 準備一個呈現圖表的盒子 -->
<div id='app' style="width: 600px;height: 400px"></div>
<script>
    // 初始化echarts範例物件
    var myCharts = echarts.init(document.getElementById('app'))
    // 2.準備x軸資料
    var xDataArr = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月',
        '10月', '11月', '12月']
    // 3. 準備y軸資料
    var yDataArr = [3000, 2800, 900, 1000, 800, 700, 1400, 1300, 900, 1000, 800,
        600]
    var yDataArr1 = [3005, 3003, 3001, 3002, 3009, 3007, 3003, 3001, 3005,
        3004, 3001, 3009] // 此時y軸的資料都在3000附近, 每個數之間相差不多
    // 4. 準備設定項
    var option = {
        xAxis: {
            type: 'category',
            data: xDataArr,
            boundaryGap: false  //  讓起點從 x 軸的0座標開始
        },
        yAxis: {
            type: 'value',
            scale: true  //  讓其擺脫0值比例
        },
        series: [
            {
                type: 'line',
                data: yDataArr,
                scale: true,
                markPoint: {  // 最大值、最小值
                    data: [
                        {
                            type: 'max',
                            name: '最大值'
                        }, {
                            type: 'min',
                            name: '最小值'
                        }
                    ]
                },
                markLine: { // 平均值
                    data: [
                        {
                            type: 'average',
                            name: '平均值'
                        }
                    ]
                },
                markArea: { // 標註區間
                    data: [
                        [{xAxis: '2月'}, {xAxis: '3月'}],
                        [{xAxis: '8月'}, {xAxis: '9月'}]
                    ]
                },
                smooth: true,  // 平滑線條
                lineStyle: {
                    color: 'green',  // 線條顏色
                    type: 'dashed' // 可選值還有 dotted:虛線  solid:實線
                },
                areaStyle: {  // 填充風格
                    color: 'pink'
                }
            }
        ]
    }
    // 步驟5:將設定項設定給echarts範例物件
    myCharts.setOption(option)
</script>
</body>
</html>

縮放-脫離0值比例

  • 如果每一組資料之間相差較少, 且都比0大很多, 那麼有可能會出現這種情況
  • scale :應該設定給 y 軸
var option = {
  yAxis: {
    type: 'value',
    scale: true
 }
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ECharts-折線圖</title>
    <!-- cdn方式 引入echarts.js檔案 -->
    <script src="https://cdn.jsdelivr.net/npm/echarts@5.4.1/dist/echarts.min.js"></script>
</head>
<body>
<!-- 準備一個呈現圖表的盒子 -->
<div id='app' style="width: 600px;height: 400px"></div>
<script>
    // 初始化echarts範例物件
    var myCharts = echarts.init(document.getElementById('app'))
    // 2.準備x軸資料
    var xDataArr = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月',
        '10月', '11月', '12月']
    // 3. 準備y軸資料
    var yDataArr = [3000, 2800, 900, 1000, 800, 700, 1400, 1300, 900, 1000, 800,
        600]
    var yDataArr1 = [3005, 3003, 3001, 3002, 3009, 3007, 3003, 3001, 3005,
        3004, 3001, 3009] // 此時y軸的資料都在3000附近, 每個數之間相差不多
    // 4. 準備設定項
    var option = {
        xAxis: {
            type: 'category',
            data: xDataArr,
            boundaryGap: false  //  讓起點從 x 軸的0座標開始
        },
        yAxis: {
            type: 'value',
            scale: true  //  讓其擺脫0值比例
        },
        series: [
            {
                type: 'line',
                data: yDataArr1,
                smooth: true,  // 平滑線條
            }
        ]
    }
    // 步驟5:將設定項設定給echarts範例物件
    myCharts.setOption(option)
</script>
</body>
</html>

效果

堆疊圖

堆疊圖指的是, 同個類目軸上系列設定相同的 stack 值後,後一個系列的值會在前一個系列的值上

相加

var option = {
  series: [
   {
      type: 'line',
      data: yDataArr1,
      stack: 'all'  // series中的每一個物件設定相同的stack值, 這個all替換為任意值
   },
   {
      type: 'line',
      data: yDataArr2,
      stack: 'all' // 與上面保持一致即可
   }
 ]
}

效果

完整程式碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ECharts-折線圖</title>
    <!-- cdn方式 引入echarts.js檔案 -->
    <script src="https://cdn.jsdelivr.net/npm/echarts@5.4.1/dist/echarts.min.js"></script>
</head>
<body>
<!-- 準備一個呈現圖表的盒子 -->
<div id='app' style="width: 600px;height: 400px"></div>
<script>
    // 初始化echarts範例物件
    var myCharts = echarts.init(document.getElementById('app'))
    var xDataArr = ['週一', '週二', '週三', '週四', '週五', '週六', '週日']
    var yDataArr1 = [120, 132, 101, 134, 90, 230, 210]
    var yDataArr2 = [20, 82, 191, 94, 290, 330, 310]
    //  準備設定項
    var option = {
        xAxis: {
            type: 'category',
            data: xDataArr
        },
        yAxis: {
            type: 'value',
            scale: true
        },
        series: [
            {
                type: 'line',
                data: yDataArr1,
                stack: 'all', // series中的每一個物件設定相同的stack值, 這個值可以任意寫
                areaStyle: {  // 填充風格
                    color: 'pink'
                }
            },
            {
                type: 'line',
                data: yDataArr2,
                stack: 'all',  // 與上面的保持一致
                areaStyle: {
                    color: 'blue'
                }
            }
        ]
    }
    myCharts.setOption(option)
    // 將設定項設定給echarts範例物件
    myCharts.setOption(option)
</script>
</body>
</html>

到此這篇關於Vue匯入Echarts實現折線圖的文章就介紹到這了,更多相關Vue折線圖內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com