【ECharts】數據可視化

目錄

  • ECharts介紹
  • ECharts 特點
  • Vue2使用EChats步驟
    • 安裝 ECharts
    • 引入 ECharts
    • 創建圖表容器
    • 初始化圖表
    • 更新圖表
  • 示例
    • 基本柱狀圖
      • 后臺代碼
      • vue2代碼
        • 配置
      • 組件代碼
      • 運行效果
    • 基本折線圖
      • 示例代碼
        • 組件
    • 基礎餅圖
      • 示例代碼
        • 后臺
        • 前端配置
        • 組件
        • 運行效果
    • 其他

ECharts介紹

  • ECharts 是一個由百度開發和維護的開源的可視化圖表庫。
  • 它提供了豐富的圖表類型和交互功能,可以用于創建各種類型的數據可視化圖表,包括折線圖、柱狀圖、餅圖、散點圖、雷達圖、地圖等。
    在這里插入圖片描述在這里插入圖片描述

ECharts 特點

  1. 強大的兼容性:ECharts 可以在主流的瀏覽器上運行,包括 Chrome、Firefox、Safari、IE8+ 等。

  2. 靈活的配置選項:ECharts 提供豐富的配置選項,可以自定義圖表的樣式、布局、標簽、動畫等,以滿足不同的需求。

  3. 豐富的交互功能:ECharts 支持多種交互方式,如鼠標懸停、點擊、拖拽等,可以實現圖表的聯動、篩選、縮放等交互效果。

  4. 多維度的數據展示:ECharts 支持多維度的數據可視化,可以通過數據的不同維度來展示數據的關聯性、分布情況等。

  5. 可視化的配置工具:ECharts 提供了一個可視化的配置工具,可以通過拖拽和編輯來創建和調整圖表,讓非開發人員也能輕松使用。

總的來說,ECharts 是一個功能強大、靈活易用的數據可視化圖表庫,廣泛應用于數據分析、商業報表、可視化大屏等領域。

Vue2使用EChats步驟

在 Vue2 中使用 ECharts 需要進行以下幾個步驟:

安裝 ECharts

可以通過 npm 或者 CDN 的方式安裝 ECharts。如果使用 npm,可以在項目目錄下運行以下命令安裝 ECharts:

npm install echarts --save
//或者
npm install echarts@4.8.0 --save

引入 ECharts

main.js中加入以下配置

import * as echarts from 'echarts';
Vue.prototype.$echarts = echarts;

創建圖表容器

在 Vue 的模板中創建一個用于顯示圖表的容器元素。

<template><div id="chart" style="width:50%;height: 300px;border: 1px solid blue"></div>
</template>

初始化圖表

在 Vue 的方法中初始化 ECharts,通過 ECharts 的實例來配置和渲染圖表。

export default {mounted() {this.initChart()},methods: {initChart() {// 獲取容器元素const chartContainer = document.getElementById('chart')// 創建圖表實例const chart = echarts.init(chartContainer)// 配置圖表const option = {// 圖表的配置項}// 渲染圖表chart.setOption(option)}}
}

上述代碼中,通過 mounted 鉤子函數來在組件掛載后調用 initChart 方法初始化圖表。在 initChart 方法中,通過 echarts.init 方法創建圖表實例,并通過 setOption 方法將配置項應用到圖表中。

更新圖表

如果需要在組件中根據數據的變化來更新圖表,可以在相應的方法中調用 setOption 方法來更新圖表的數據。

export default {methods: {updateChart() {const chart = echarts.getInstanceByDom(document.getElementById('chart'))// 更新圖表的配置項const option = {// 新的配置項}// 更新圖表chart.setOption(option)}}
}

通過以上步驟,你可以在 Vue2 中使用 ECharts 來創建和更新圖表。記得在組件銷毀時調用 dispose 方法來銷毀圖表實例,以釋放資源。

export default {beforeDestroy() {const chart = echarts.getInstanceByDom(document.getElementById('chart'))chart.dispose()}
}

示例

基本柱狀圖

  • 柱狀圖(或稱條形圖)是一種通過柱形的長度來表現數據大小的一種常用圖表類型。
  • 設置柱狀圖的方式,是將 series 的 type 設為 ‘bar’。

后臺代碼

@RestController
@RequestMapping("/bill")
@CrossOrigin
public class BillController {@RequestMapping("/product")public Object bill(){Map<String,Object> resultMap = new HashMap<>();List<String> productNameList = new ArrayList<>();List<Integer> productNumberList = new ArrayList<>();Collections.addAll(productNameList,"電腦","鼠標","鍵盤","鼠標墊","顯示器","擴展屏");Collections.addAll(productNumberList,200,220,317,211,179,302);resultMap.put("xMap",productNameList);resultMap.put("seriesMap",productNumberList);return resultMap;}
}

vue2代碼

在這里插入圖片描述

配置

serverConfig.js:后臺url路徑

const baseurl = {dev: 'http://192.168.2.220:9006',
}
export default baseurl

request.js:配置axios

import axios from 'axios'
import baseurl from '@/utils/serverConfig'// create an axios instance
const service = axios.create({baseURL: baseurl.dev, // url = base url + request urlwithCredentials: false, // 是否跨域timeout: 60000 // 請求超時
})export default service

bill.js:訪問后臺bill模塊的接口文件

import request from '@/utils/request'
function getBillProductData() {return request({url: '/bill/product',method: 'post',//params})
}export default {getBillProductData,
}

組件代碼

<template><div id="chart" style="width:50%;height: 300px;border: 1px solid blue"></div>
</template><script>
import billReq from '@/api/bill'
export default {name: "MyEChart",mounted() {this.initData()},data() {return {}},methods: {initData() {billReq.getBillProductData().then(response=>{//const resultJson = JSON.stringify(response.data);this.createEcharts(response.data.xMap,response.data.seriesMap);})},createEcharts(x,s) {let options = {//配置項tooltip: {//鼠標觸摸顯示值trigger: "axis",axisPointer: {type: 'shadow'}},xAxis: {//x軸設置data: x},yAxis: {},//y軸設置series: [{type:'bar',data:s}]}// 獲取容器元素var chartContainer = document.getElementById('chart')// 創建圖表實例var chart = this.$echarts.init(chartContainer)// 渲染圖表chart.setOption(options)window.addEventListener("resize", function () {chart.resize(); //圖表自適應的一個方法});}}
}
</script><style scoped></style>

運行效果

在這里插入圖片描述

基本折線圖

折線圖主要用來展示數據項隨著時間推移的趨勢或變化。

示例代碼

組件
<template><div id="chart" style="width:50%;height: 300px;border: 1px solid blue"></div>
</template><script>
import billReq from '@/api/bill'
export default {name: "ZheEChart",mounted() {this.initData()},data() {return {}},methods: {initData() {billReq.getBillProductData().then(response=>{//const resultJson = JSON.stringify(response.data);this.createEcharts(response.data.xMap,response.data.seriesMap);})},createEcharts(x,s) {let options = {//配置項tooltip: {//鼠標觸摸顯示值trigger: "axis",axisPointer: {type: 'shadow'}},xAxis: {//x軸設置type:'category',data: x},yAxis: {type:'value'},//y軸設置series: [{type:'line',data:s}]}// 獲取容器元素var chartContainer = document.getElementById('chart')// 創建圖表實例var chart = this.$echarts.init(chartContainer)// 渲染圖表chart.setOption(options)window.addEventListener("resize", function () {chart.resize(); //圖表自適應的一個方法});}}
}
</script><style scoped></style>

在這里插入圖片描述

基礎餅圖

  • 餅圖主要用于表現不同類目的數據在總和中的占比。
  • 每個的弧度表示數據數量的比例。
  • 餅圖的配置和折線圖、柱狀圖略有不同,不再需要配置坐標軸,而是把數據名稱和值都寫在系列中。

示例代碼

后臺
    @RequestMapping("/bing")public Object bing(){List<Map<String,Object>> resultList = new ArrayList<>();Map<String,Object> resultMap1 = new HashMap<>();resultMap1.put("name","鼠標");resultMap1.put("value","45");Map<String,Object> resultMap2 = new HashMap<>();resultMap2.put("name","鼠標墊");resultMap2.put("value","35");Map<String,Object> resultMap3 = new HashMap<>();resultMap3.put("name","鍵盤");resultMap3.put("value","512");Map<String,Object> resultMap4 = new HashMap<>();resultMap4.put("name","顯示器");resultMap4.put("value","233");Collections.addAll(resultList,resultMap1,resultMap2,resultMap3,resultMap4);return resultList;}
前端配置
import request from '@/utils/request'
function getBillProductData() {return request({url: '/bill/product',method: 'post',//params})
}
function getBillProductBing() {return request({url: '/bill/bing',method: 'post',//params})
}export default {getBillProductData,getBillProductBing,
}
組件
<template><div id="chart" style="width:50%;height: 300px;border: 1px solid blue"></div>
</template><script>
import billReq from '@/api/bill'
export default {name: "BingEChart",mounted() {this.initData()},data() {return {}},methods: {initData() {billReq.getBillProductBing().then(response=>{//const resultJson = JSON.stringify(response.data);this.createEcharts(response.data);})},createEcharts(s) {let options = {//配置項tooltip: {//鼠標觸摸顯示值trigger: "axis",axisPointer: {type: 'shadow'}},series: [{type:'pie',data:s}]}// 獲取容器元素var chartContainer = document.getElementById('chart')// 創建圖表實例var chart = this.$echarts.init(chartContainer)// 渲染圖表chart.setOption(options)window.addEventListener("resize", function () {chart.resize(); //圖表自適應的一個方法});}}
}
</script><style scoped></style>
運行效果

在這里插入圖片描述

其他

更多內容,參考官網,很詳細,很適合學習
在這里插入圖片描述

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

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

相關文章

spring模塊(一)容器(4)ApplicationContextAware

一、介紹 1、問題引入 為了獲取已被實例化的Bean對象,如果使用再次加載配置文件的方法,可能會出現一個問題,如一些線程配置任務, 會啟動兩份,產生了冗余. ApplicationContext appContext new ClassPathXmlApplicationContext("applicationContext.xml"); UserS…

python 多線程處理圖片

thread for i in range(len(ori_path)):for filename in os.listdir(ori_path[i]):number_img number_img 1print("正在處理第" str(number_img) "張圖片")img_name ori_path[i] filenamet Thread(target deal_one_img, args [img_name, filenam…

使用.net core 調用C#WebService的三種方式

WebSerrvic代碼&#xff1a; [WebMethod]public string Test(string p1, string p2){return p1 "_" p2;} 以下是 SOAP 1.2 請求和響應示例。所顯示的占位符需替換為實際值。 POST /Service1.asmx HTTP/1.1 Host: localhost Content-Type: text/xml; charsetutf-8…

unity 制作app實現底部導航欄和頂部狀態欄

前段時間在用unity制作一個app&#xff0c;發現有個問題用unity制作的app&#xff0c;他默認是沒有頂部狀態欄的&#xff0c;也沒有底部的導航欄&#xff0c;是一個全部覆蓋的狀態。但仔細觀察可以發現&#xff0c;正常app&#xff0c;頂部狀態欄是有的&#xff0c;而且是透明的…

軟件設計師備考 | 案例專題之數據庫設計 概念與例題

相關概念 關注上圖中的兩個部分&#xff1a; 概念結構設計 設計E-R圖&#xff0c;也即實體-聯系圖。 工作步驟&#xff1a;選擇局部應用、逐一設計分E-R圖、E-R圖合并。進行合并時&#xff0c;它們之間存在的沖突主要有以下3類&#xff1a; 屬性沖突。同一屬性可能會存在于…

低功耗藍牙模塊輕松實現智能防丟器

低功耗藍牙模塊&#xff0c;作為集成藍牙無線技術功能的PCBA板&#xff0c;主要用于短距離無線通訊&#xff0c;已經成為物聯網無線傳輸發展的中堅力量。隨著藍牙技術不斷更新換代&#xff0c;越來越多的智能可穿戴設備出現在我們的生活中&#xff0c;智能手環&#xff0c;智能…

電商公司需不需要建數字檔案室呢

建立數字檔案室對于電商公司來說是非常有必要的。以下是一些原因&#xff1a; 1. 空間節約&#xff1a;數字檔案室可以將紙質文件轉化為電子文件&#xff0c;節省了大量存儲空間。這對于電商公司來說尤為重要&#xff0c;因為他們通常會有大量的訂單、客戶信息和供應商合同等文…

Java面向對象程序設計-Hash表

以下為翁愷老師在3.4Hash表中的示例代碼&#xff1a; package coins;import java.util.HashMap; import java.util.Scanner;public class Coin {private HashMap<Integer,String> coinnamesnew HashMap<Integer,String>();public Coin(){coinnames.put(1,"pe…

貸款業務——還款方式以及計算公式對比

文章目錄 等額本息等額本金先息后本&#xff08;按月付息&#xff0c;到期還本&#xff09;到期一次還本付息等本等息&#xff08;等額等息&#xff09;等本等息&#xff08;砍頭息&#xff09; 等額本息 等額本息&#xff1a;借款人每月還的金額固定&#xff08;本金利息總額…

力扣538. 把二叉搜索樹轉換為累加樹

Problem: 538. 把二叉搜索樹轉換為累加樹 文章目錄 題目描述思路復雜度Code 題目描述 思路 利用二叉搜索樹中序遍歷的特性&#xff0c;**降序遍歷&#xff08;此處是想表達先遍歷其右子樹再遍歷其左子樹這樣遍歷的過程中每個節點值得大小排序是降序得&#xff09;**其節點&…

寶塔PHP環境安裝配置Xdebug

寶塔PHP環境安裝配置Xdebug 安裝XdebugVSCode安裝插件編輯配置文件編輯配置運行調試斷點快捷鍵其他 安裝Xdebug 在寶塔中&#xff0c;找到PHP&#xff0c;打開管理頁面&#xff0c;選擇xdebug擴展&#xff0c;點擊操作欄中的安裝按鈕&#xff08;這里已經安裝過了&#xff0c;…

砍死怪獸的概率

題目描述&#xff1a;給定3個參數&#xff0c;N&#xff0c;M&#xff0c;K&#xff0c;怪獸有N滴血&#xff0c;等著英雄來砍自己&#xff0c;英雄每一次打擊&#xff0c;都會讓怪獸流失[0,M]的血量&#xff0c;流失的值每次在[0,M]上等概率的獲得一個值&#xff0c;求K次打擊…

kafka單機安裝及性能測試

kafka單機安裝及性能測試 Apache Kafka是一個分布式流處理平臺&#xff0c;最初由LinkedIn開發&#xff0c;并于2011年開源&#xff0c;隨后成為Apache項目。Kafka的核心概念包括發布-訂閱消息系統、持久化日志和流處理平臺。它主要用于構建實時數據管道和流處理應用&#xff0…

電商項目之有趣的支付簽名算法

文章目錄 1 問題背景2 思路3 代碼實現 1 問題背景 在發起支付的時候&#xff0c;一般都需要對發送的請求參數進行加密或者簽名&#xff0c;下文簡稱這個過程為“簽名”。行業內比較普遍的簽發算法有&#xff1a; &#xff08;1&#xff09;按支付渠道給定的字段排序進行拼接&am…

C++|設計模式(〇)|設計模式的六大原則

這里文章只做簡要描述&#xff0c;作為掃盲 在軟件開發過程中&#xff0c;遵循一定的設計原則可以幫助開發者創建更加靈活、可維護和可擴展的系統。設計模式的六大原則是面向對象設計的核心理念&#xff0c;本文將詳細介紹這些原則&#xff0c;并結合實例說明它們的重要性和應用…

Android Studio添加依賴 新版 和 舊版 的添加方式(Gradle添加依賴)(Java)

舊版的&#xff08;在線添加&#xff09; 1找 文件 在項目的build.gradle文件中添加依賴(在下面的節點中添加庫 格式 ’ 組 &#xff1a;名字 &#xff1a; 版本號 ‘ ) dependencies {implementation com.example:library:1.0.0 }implementation 組:名字:版本…

【lambdastreammaven】

lambda 匿名函數 為了簡化java中的匿名內部類 事件監聽 寫一個類 實現 ActionListener 接口 (外部類) | | 內部類 類在其他地方用不到, 索性就把這個類定義在類的內部使用 好處: 1.內部可以使用外部類的成員 …

互聯網十萬個為什么之什么是分布式計算?

分布式計算是一種計算方法&#xff0c;它將計算任務分散到多個物理或邏輯上分開的計算機&#xff08;稱為節點&#xff09;上執行&#xff0c;這些節點通過網絡互連并協作完成共同的目標。每個節點具備獨立的處理能力和存儲資源&#xff0c;在分布式系統中&#xff0c;它們共享…

論文閱讀--CLIPasso

讓計算機把真實圖片抽象成簡筆畫&#xff0c;這個任務很有挑戰性&#xff0c;需要模型捕獲最本質的特征 以往的工作是找了素描的數據集&#xff0c;而且抽象程度不夠高&#xff0c;筆畫是固定好的&#xff0c;素描對象的種類不多&#xff0c;使得最后模型的效果十分受限 之所以…

小米財報:業績遠超預期,汽車推著手機跑!

隨著一季度財報陸續出爐&#xff0c;企業間的分化越來越明顯。 新環境下&#xff0c;很多公司都陷入停滯時&#xff0c;去討論“掉隊”已經沒有多少意義&#xff0c;現在真正值得我們關注的&#xff0c;是那些在逆風情況下&#xff0c;還能“領先”的企業。毫無疑問&#xff0…