echarts(6大基礎圖表)的使用

目錄

一、vue2掛載

二、柱狀圖

2.1、基礎柱狀圖介紹

2.2、標記:最大值\最小值(markPoint)、平均值(markLine)

2.3、顯示:數值顯示(label)、柱子寬度(barWidth)、橫向柱狀圖

三、折線圖

3.1、標記:最大值\最小值(markPoint)、平均值(markLine)、標注區間(markArea)

3.2、線條控制:平滑(smooth)、風格(lineStyle)

3.3、填充風格(areaStyle)

3.4、緊挨邊緣(boundaryGap)、縮放(scale)

3.5、堆疊圖(stack)

四、散點圖

4.1、氣泡圖:散點大小(symbolSize)、散點顏色(itemStyle.color)效果

4.2、漣漪動畫(type:effectScatter)效果

五、直角坐標系常用配置

5.1、網格:grid

5.2、坐標軸:axis

5.3、區域縮放:dataZoom

六、餅圖

6.1、顯示數值(label.formatter)

6.2、圓環(radius)

6.3、南丁格爾圖(roseType)、選中效果(selectedMode)

?七、雷達圖

7.1、顯示數值(label)、區域面積(areaStyle)

7.2、繪制類型(shape)

八、儀表盤圖

8.1、數值范圍、多個指針、顏色

九、通用配置

9.1、標題:title

9.1、提示:tooltip

9.1、工具按鈕:toolbox

9.1、圖例:legend

十、基礎小結

一、vue2掛載

(1)、npm i?echarts成功后,在項目的package.json文件里可以看到版本號: "echarts": "^4.9.0"。

(2)、在項目的main.js中

import echarts from "echarts"
Vue.prototype.$echarts = echarts;//掛載到原型,可以在全局使用

(3)、官網:快速上手 - 使用手冊 - Apache ECharts

(4)、每個圖的具體信息配置項:Documentation - Apache ECharts

二、柱狀圖

2.1、基礎柱狀圖介紹

<template><div><el-card><divref="echartsMain"style="width: 60%; height: 500px"id="main1"></div></el-card></div>
</template>
<script>
export default {data() {return {list: [{ time: "一班", value: 110 },{ time: "二班", value: 90 },{ time: "三班", value: 190 },{ time: "四班", value: 70 },{ time: "五班", value: 300 },],};},mounted() {this.getData();},methods: {getData() {// this.$nextTick(() => {});//解決掛載時拿不到this.$refs.echartsMain的bug// let myChart = this.$echarts.init(this.$refs.echartsMain);//這樣寫也行let myChart = this.$echarts.init(document.getElementById("main1"));myChart.setOption({title: {text: "基礎柱狀圖顯示",},xAxis: {//xAxis:直角坐標系中的X軸type: "category",data: this.list.map((d) => d.time),axisLabel: {//傾斜展示角度rotate: 60,// 垂直顯示// formatter: function (value) {//   return value.split("").join("\n");// },},},yAxis: {//yAxis:直角坐標系中的Y軸type:'value',//數值軸},series: [//series:系列列表{barWidth:30,name: "日期",type: "bar",//決定圖標類型(bar、line、pie)data: this.list.map((d) => d.value),},],});},},
};
</script>

常見效果如下:


2.2、標記:最大值\最小值(markPoint)、平均值(markLine)

series: [{......markPoint: {data: [{type: "max",name: "最大值",},{type: "min",name: "最小值",},],},markLine: {data: [{type: "average",name: "平均值",},],},},],

2.3、顯示:數值顯示(label)、柱子寬度(barWidth)、橫向柱狀圖

series: [{...... barWidth: "30%",label: {show: true,rotate: 60,position: "top",},},],

橫向展示:只需將xAxis和yAxis的值或者type的值互換即可

        xAxis: {// type: "category", // data: this.list.map((d) => d.time),type: "value",},yAxis: {// type: "value",type: "category", data: this.list.map((d) => d.time),},

三、折線圖

將series中?type的值設置為"line"即可!一般用于分析數據隨著時間的變化趨勢!

常見效果如下:


3.1、標記:最大值\最小值(markPoint)、平均值(markLine)、標注區間(markArea)

series: [{......markPoint: {data: [{type: "max",},{type: "min",},],},markLine: {data: [{type: "average",},],},markArea: {data: [[{ xAxis: "1月" }, { xAxis: "2月" }],[{ xAxis: "6月" }, { xAxis: "7月" }],],},},],

3.2、線條控制:平滑(smooth)、風格(lineStyle)

series: [{......smooth: true,lineStyle: {color: "green",type: "dotted",//solid、dotted、dashed},},],

3.3、填充風格(areaStyle)

series: [{......areaStyle: { color: "skyblue" },},],

3.4、緊挨邊緣(boundaryGap)、縮放(scale)

xAxis: {type: "category",data: xDataArr,boundaryGap: false,//緊挨邊緣},
yAxis: {type: "value",scale:true,//脫離0值比例(縮放)},

3.5、堆疊圖(stack)

一組數據基于另一組數據進行累加后展示,防止相近數據交叉,顯得‘雜亂無章’

        series: [{name: "銷量",type: "line",data: yDataArr,stack: "all",areaStyle: {},},{name: "other",type: "line",data: yDataArr2,stack: "all",areaStyle: {},},],

四、散點圖

將series中?type的值設置為"scatter",xAxis和yAxis的type都設置為"value"!

一般用于推斷變量間的(正)相關性(eg:身高和體重的關系),也可以用在地圖標注上!

<script>    var datas = [{ gender: "male", height: 164.2, weight: 55.5 },{ gender: "male", height: 167.5, weight: 59 },{ gender: "male", height: 170.2, weight: 62.3 },{ gender: "male", height: 176.6, weight: 76.3 },{ gender: "male", height: 179.1, weight: 79.1 },{ gender: "male", height: 177.8, weight: 84.1 },{ gender: "male", height: 180.3, weight: 83.2 },{ gender: "male", height: 180.3, weight: 83.2 },{ gender: "male", height: 183, weight: 90.9 },];var axisData = [];for (var i = 0; i < datas.length; i++) {var height = datas[i].height;var weight = datas[i].weight;var newArr = [height, weight];axisData.push(newArr);}let myChart = this.$echarts.init(document.getElementById("main1"));myChart.setOption({xAxis: {type: "value",scale: true,},yAxis: {type: "value",scale: true,},series: [{type: "scatter",data: axisData,//二維數組},],});
</script>

4.1、氣泡圖:散點大小(symbolSize)、散點顏色(itemStyle.color)效果

        series: [{type: "scatter",data: axisData, //二維數組showEffectOn:'emphasis',rippleEffect:{scale:10},symbolSize: function (arg) {// BMI=體重(kg)/(身高m*身高m)  >28即為肥胖  >23.9即為超重var height = arg[0] / 100;var weight = arg[1];var Bmi = weight / (height * height);if (Bmi > 24) {return 24;}return 10;},itemStyle: {color: function (arg) {var height = arg.data[0] / 100;var weight = arg.data[1];var Bmi = weight / (height * height);if (Bmi > 24) {return "red";}return "green";},},},],

4.2、漣漪動畫(type:effectScatter)效果

1、將type原本的值“scatter”設置為“effectScatter,每個散點會由內而外像水波一樣蕩漾開來!

2、想要鼠標劃到對應散點上再出現水波紋:在type同級添加showEffectOn:'emphasis';

3、想要水波紋范圍擴大:在type同級添加rippleEffect:{scale:10}

五、直角坐標系常用配置

直角坐標系圖表:柱狀圖、折線圖、散點圖

5.1、網格:grid

作用:控制直角坐標系的布局和大小

        grid: {show: true,borderWidth: 10,borderColor: "gold",left: 20,top: 20,width: 300,height: 150,},xAxis: {.....},yAxis: {.....},

5.2、坐標軸:axis

(1)、類型type:

value:數值軸,會自動從目標數據中讀取數據

category:類目軸,通過data設置類目數據

(2)、顯示位置position

xAxis:可取值為top或者bottom

yAxis:可取值為left或者right

5.3、區域縮放:dataZoom

(1)、類型type:

slider:滑塊滾動

inside:鼠標滾動

(2)、指明產生作用的軸

xAxisIndex:控制哪個x軸,值為數字

yAxisIndex:控制哪個y軸,值為數字

(3)、指明初始狀態的縮放情況

start:起始百分比

end:結束百分比

     dataZoom: [{type: "slider",// type: "inside",//滾動條不顯示,直接鼠標滾動xAxisIndex: 0,},{type: "slider",yAxisIndex: 0,start: 0,end: 80,},],xAxis: {.....},yAxis: {.....},

六、餅圖

將series中?type的值設置為"pie"即可!一般用于反映模塊的占比情況!

6.1、顯示數值(label.formatter)

  myChart.setOption({series: [{type: "pie",data: this.list,label: {show: true,formatter: function (arg) {return (arg.name + "平臺" + arg.value + "元\n" + arg.percent + "%");},},},],});

6.2、圓環(radius)

label: {......},
radius:['50%','75%']//[內圓半徑,外圓半徑]

6.3、南丁格爾圖(roseType)、選中效果(selectedMode)

label: {......},           
roseType:'radius',//餅圖的每個區域的半徑和模塊占比相關,
selectedMode:'multiple',//single:單個區域偏離原點、multiple:多個區域偏離原點

七、雷達圖

將series中?type的值設置為"radar"即可!一般用于分析多個維度數據與標準數據的比對情況!

7.1、顯示數值(label)、區域面積(areaStyle)

      let myChart = this.$echarts.init(document.getElementById("main1"));var dataMax = [{ name: "易用性", max: 100 },{ name: "功能", max: 100 },{ name: "拍照", max: 100 },{ name: "跑分", max: 100 },{ name: "續航", max: 100 },];myChart.setOption({radar: {indicator: dataMax, //配置各個維度的最大值,},series: [{type: "radar",label: {show: true,},areaStyle: {}, //給每個對象添加陰影區域data: [{name: "華為手機",value: [80, 90, 80, 82, 90],},{name: "中興手機",value: [70, 82, 75, 70, 78],},],},],});

7.2、繪制類型(shape)

        radar: {indicator: dataMax, //配置各個維度的最大值,shape:'polygon',//polygon:多邊形   circle:圓形},series: [......],

八、儀表盤圖

將series中?type的值設置為"gauge"即可!一般用于分析進度把控以及數據范圍的監測

      myChart.setOption({series: [{type: "gauge",data: [{value: 97,itemStyle: {color: "pink",},}, //每一個對象就代表一個指針{value: 80,itemStyle: {color: "green",},},],min:50  //min  max 儀表盤數值范圍},],});

8.1、數值范圍、多個指針、顏色

數值范圍:min、max

多個指針:增加data中的數組元素;

顏色:(itemStyle.color)

九、通用配置

9.1、標題:title

(1)、文字樣式:textStyle

(2)、標題邊框:borderWidth、borderColor、borderRadius

(3)、標題位置:top、left、right、bottom

title: {text: "基礎柱狀圖顯示",textStyle: {color: "red",},borderWidth: 5,borderColor: "blue",borderRadius: 5,top: 10,left: 100,},
xAxis: {......},
yAxis: {......},

9.1、提示:tooltip

(1)、觸發類型(trigger):item、axis

(2)、觸發時機(triggerOn):mouseover、click

(3)、格式化(formatter):字符串模板、回調函數

title: {......},
tooltip: {trigger: "axis",triggerOn: "click",// formatter: "{b} 的成績是 {c}",formatter: function(msg){console.log(msg[0]);return msg[0].name+'分數為'+msg[0].data},},
xAxis: {......},

9.1、工具按鈕:toolbox

內置有導出圖片、數據視圖、動態類型切換、數據區域縮放、數據重置5個工具

title: {......},
toolbox: {feature: {saveAsImage: {},//導出圖片dataView: {},//更改圖表數據restore: {},//將更改的數據還原dataZoom: {},//框選指定區域“放大”(單獨展示)magicType: {//類型切換:可以將原數據切換為不同類型的圖表不同再畫一個了type: ["bar", "line", "stack"],},},},
xAxis: {......},

9.1、圖例:legend

legend用于篩選系列:它里面的data的值需要和series數組中該組數據的name值完全一致,否則無法顯示。點擊上面任意一個系列框框,下面就會留下對應的數據。

legend: {data: ["第一種", "第二種"],},
series: [{name: "第一種",type: "bar",data: this.list.map((d) => d.value),},{name: "第二種",type: "bar",data: yData2,},],

備注:也可以用echarts實現矢量地圖(type:'map'),不過一般都用百度地圖(需要ak)

十、基礎小結

nametype

use

柱狀圖bar? ? ? ? ? ? ? ? ? 比較不同類別之間的數據差異
折線圖line? ? ? ? ? ? ? ? ? 分析數據隨著時間的變化趨勢
散點圖scatter/effectScatter? ? ? ? ? ? ? ? ? 推斷變量間的(正)相關性
餅圖pie? ? ? ? ? ? ? ? ? 反映的占比情況
雷達圖radar? ? ? ? ? ? ? ? ? 分析多個維度數據與標準數據的比對情況
儀表盤圖gauge? ? ? ? ? ? ? ? ? 分析進度把控以及數據范圍的監測

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/18293.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/18293.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/18293.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

R可視化:組間點圖比較

散點組間比較 散點組間比較 介紹 ggplot2繪制散點組間比較加載R包 knitr::opts_chunk$set(message = FALSE, warning = FALSE)library(tidyverse) library(ggplot2) library(ggprism) library(ggbeeswarm) library(rstatix)rm(list = ls()) options(stringsAsFactors = F) o…

android11禁止進入屏保和自動休眠

應某些客戶要求&#xff0c;關閉了開機進入屏保&#xff0c;一段時間會休眠的問題。以下diff可供參考&#xff1a; diff --git a/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/overlay/frameworks/base/packages/SettingsProvider/res/value…

Python3 筆記:repr() 函數

repr() 函數將對象轉化為供解釋器讀取的形式。 語法&#xff1a; repr(object) 返回一個對象的 string 格式。 tuple1 (1,2,3) print(type(repr((tuple1)))) # 運行結果&#xff1a;<class str> repr(str)與在字符串前加上“r”或“R”的原理有點相似&#xff0c;但…

node模塊的本質

對于一個模塊而言&#xff0c;有兩個關鍵的地方&#xff0c;一是有自己的作用域&#xff0c;二是有對外暴露的接口 不知道大家有沒有想過這樣一個問題&#xff0c;模塊是怎么實現上面兩個特性的呢&#xff1f;其實通過一個 立即執行函數 就可以了 實際上 Node 在編譯的時候&a…

常見5大開發進度盲點問題及解決方案

在軟件開發項目中&#xff0c;識別并解決常見的進度管理盲點問題&#xff0c;對于確保項目按時、按預算、高質量完成至關重要。它直接關系到項目能否順利進行&#xff0c;忽視任何一個問題&#xff0c;都可能導致項目延期、成本超支、質量下降&#xff0c;甚至項目失敗。 因此&…

IT技術培訓班:實用還是虛幻?

在學習IT技術的過程中&#xff0c;我經常被各種五花八門的技術培訓班所安利。這些培訓班以各種方式向我宣傳&#xff0c;聲稱可以快速提升技能、獲得認證、找到高薪工作等&#xff0c;讓我不禁懷疑&#xff1a;在培訓班里學技術真的有用嗎&#xff1f;我對此抱有怎樣的態度呢&a…

香橙派華為昇騰CANN架構編譯opencv4.9

香橙派華為升騰AI盒子 為啥要編譯opencv4.9.0&#xff0c; 因為在4.9.0 中增加了華為昇騰CANN的外接開發庫&#xff0c;下圖為盒子外觀&#xff0c;此次一接到這個盒子&#xff0c;立刻開始開箱操作&#xff0c;首先就是要編譯opencv4.9&#xff0c;以前在香橙派3588 的盒子中…

大模型應用:LLM基本原理及應用場景

1.背景 23年以來&#xff0c;隨著OpenAI公司的ChatGPT橫空出世&#xff0c;大模型一詞開始火爆全球。國內外以OpenAI、Google、百度、阿里、字節等大廠為代表&#xff0c;相繼推出一系列大模型及其應用&#xff0c;涉及社交、問答、代碼助手等多個方面。 目前主流的大模型及產…

Echarts - 多個頁面內有N個 echarts 圖表,封裝組件 CommonEcharts 快捷實現

目錄 子組件父組件使用注意 option 文件效果展示相關數據處理&#xff08;代碼備份 - 可不看&#xff09;數據處理后頁面展示 子組件 CommonEcharts.vue <template><div><div v-for"id in domId" :id"id" :key"id" class"…

代碼隨想錄算法訓練營Day53 | 1143.最長公共子序列、1035.不相交的線、53. 最大子序和 | Python | 個人記錄向

本文目錄 1143.最長公共子序列做題看文章 1035.不相交的線做題看文章 53. 最大子序和做題看文章 以往忽略的知識點小結個人體會 1143.最長公共子序列 代碼隨想錄&#xff1a;1143.最長公共子序列 Leetcode&#xff1a;1143.最長公共子序列 做題 無思路。 看文章 dp[i][j]&…

基于事件的架構工作機制和相關產品

基于事件的架構 基于事件的架構可否這樣理解&#xff0c;每個事件相當于傳統API的一次函數調用請求&#xff0c;比如Add(123,456)。區別在于&#xff0c;基于事件的架構只是把這個請求發出&#xff0c;并不急于得到結果&#xff0c;而是等合適的子系統處理完這個請求&#xff…

go select

select 是與 switch 相似的控制結構&#xff0c;與 switch 不同的是&#xff0c;select 中雖然也有多個 case&#xff0c;但是這些 case 中的表達式必須都是 channel 的收發操作。 select 能夠讓 goroutine 同時等待多個 channel 可讀或者可寫&#xff0c;在多個 channel 狀態改…

使用awk對nginx access.log進行統計分析

nginx可以配置訪問日志&#xff0c;如果我們要對日志文件進行統計分析&#xff0c;在linux環境下可以借助awk命令完成。 日志格式配置如下所示&#xff1a; log_format access_json {"timestamp":"$time_iso8601","host":"$server_addr&qu…

Flutter 中的 AnimatedOpacity 小部件:全面指南

Flutter 中的 AnimatedOpacity 小部件&#xff1a;全面指南 在Flutter中&#xff0c;動畫是一種為用戶提供視覺反饋和增強用戶體驗的強大工具。AnimatedOpacity是Flutter動畫庫中的一個組件&#xff0c;它允許你通過改變一個組件的透明度來創建淡入和淡出效果。本文將詳細介紹…

章十五、Maven —— Maven 簡介、Maven 開發環境搭建、命令、打包案例

一、 Maven 簡介 Maven 是 Apache 軟件基金會的一個開源項目&#xff0c;是一個優秀的項目構建工具&#xff0c;它用來幫助開發者管理項目中的 jar&#xff0c;以及 jar 之間的依賴關系&#xff08;在A.jar文件中用到了B.jar&#xff09;、完成項目的編譯&#xff08;.java -&g…

Compose Button移除水波紋效果

一、背景 在使用Compose實現Button按鈕時&#xff0c;設計要求移除按鈕的水波紋效果&#xff0c;只保留按壓效果&#xff0c;經查Compose1.4.3版本中&#xff0c;并沒有直接移除水波紋的能力 二、遇到問題 經過多次嘗試&#xff0c;使用Compose的Button組件始終無法實現目標效…

html通過數據改變,圖片跟著改變

改變前 改變后 通過數據來控制樣式展示 <template><div>通過num控制圖標是否更改{{num}}<div class"box"><!-- 如果num大于1則是另一種&#xff0c;樣式&#xff0c;如果小時1&#xff0c;則是另一種樣式 --><div class"item&qu…

android怎么告訴系統不要回收

在Android中&#xff0c;如果你想告訴系統不要回收你的應用程序&#xff0c;可以通過設置Activity的屬性來實現。你可以設置android:configChanges屬性&#xff0c;指定在哪些配置更改時不重新創建Activity。 例如&#xff0c;如果你想指示系統在屏幕方向更改時不要重新創建Ac…

又是一知識點

1.說一下什么是mvvm模式 Model代表數據模型&#xff0c;數據和業務邏輯都在Model層中定義&#xff1b;View代表UI視圖&#xff0c;負責數據的展示&#xff1b;ViewModel負責監聽Model中數據的改變并且控制視圖的更新&#xff0c;處理用戶交互操作&#xff1b; View 的變化會自…

小阿軒yx-Shell 編程之循環語句與函數

小阿軒yx-Shell 編程之循環語句與函數 for 循環語句 可以很好地解決順序編寫異常煩瑣、困難重重的全部代碼 &#xff08;&#xff09;{}&#xff1a;里邊寫的都是命令 &#xff09;&#xff1a;不能嵌套 $&#xff08;&#xff09;&#xff1a;可以嵌套&#xff0c;適合更…