基于ECharts的智慧社區數據可視化

引言

數據可視化是現代Web應用的重要組成部分,它能將復雜的數據以直觀的圖形方式呈現,幫助用戶快速理解數據背后的信息。本文將介紹如何使用ECharts庫實現智慧社區住戶數據的可視化展示,包括柱狀圖和餅圖兩種常見圖表類型的實現與優化。

技術棧

  • Vue.js:前端框架
  • ECharts:強大的數據可視化庫
  • Axios:HTTP請求庫(用于獲取數據)

項目結構分析

1. 頁面布局

<template><div class="app-container"><div><div id="myChart" style="width: 50%;height:600px;margin-top: 10px; float: left"></div><div id="myChart2" style="width: 50%;height:600px;margin-top: 10px; float: right"></div></div></div>
</template>

這種布局實現了:

  • 左右并排的兩個圖表容器
  • 各占50%寬度,高度固定為600px
  • 頂部10px的外邊距
  • 使用浮動實現左右布局

2. 數據獲取

import { chart } from '@/api/sys/inOut'methods: {drawLine(){chart().then(res => {// 圖表初始化代碼})}
}

通過封裝的API接口chart()獲取數據,返回的Promise對象在resolve后處理數據并渲染圖表。

柱狀圖實現詳解

1. 基礎配置

let myChart = this.$echarts.init(document.getElementById('myChart'))
myChart.setOption({color: ['#3398DB'],title: {text: '智慧社區住戶量統計',subtext: '對比圖',left: 'center'},// 其他配置...
})

關鍵點:

  • 使用#3398DB作為柱狀圖的主色調
  • 設置主標題和副標題
  • 標題居中顯示

2. 交互與提示

tooltip: {trigger: 'axis',axisPointer: {type: 'shadow'},formatter: '{b}<br/>住戶量: {c}'
}

優化點:

  • 觸發類型為坐標軸觸發
  • 陰影類型的坐標軸指示器
  • 自定義提示框內容格式

3. 坐標軸配置

xAxis: {type: 'category',data: res.data.names,axisLabel: {rotate: 30,interval: 0}
},
yAxis: {type: 'value',name: '住戶量',nameLocation: 'middle',nameGap: 30
}

特色處理:

  • X軸標簽旋轉30度防止重疊
  • 強制顯示所有標簽(interval: 0)
  • Y軸名稱居中顯示,與軸線的間距為30px

4. 數據系列與樣式

series: [{name: '住戶量',type: 'bar',barWidth: '60%',data: res.data.nums,itemStyle: {borderRadius: [4, 4, 0, 0],shadowColor: 'rgba(0, 0, 0, 0.3)',shadowBlur: 5,shadowOffsetY: 3},label: {show: true,position: 'top',formatter: '{c}'}
}]

樣式亮點:

  • 柱狀圖寬度為60%
  • 頂部圓角效果
  • 陰影效果增強立體感
  • 頂部顯示數值標簽

餅圖實現詳解

1. 基礎配置

let myChart2 = this.$echarts.init(document.getElementById('myChart2'))
myChart2.setOption({title: {text: '智慧社區住戶量統計',subtext: '占比圖',left: 'center'},// 其他配置...
})

與柱狀圖類似,但展示的是占比關系而非絕對數值。

2. 圖例與交互

legend: {orient: 'vertical',left: 'left',data: res.data.list.map(item => item.name)
},
tooltip: {trigger: 'item',formatter: '{a}<br/>{b}: {c} ({d}%)'
}

特點:

  • 垂直排列的圖例
  • 左側顯示
  • 提示框顯示百分比和絕對值

3. 環形圖實現

series: [{name: '住戶量',type: 'pie',radius: ['40%', '70%'],center: ['50%', '55%'],data: res.data.list.sort(function (a, b) { return a.value - b.value; }),// 其他樣式配置...}
]

關鍵參數:

  • radius: ['40%', '70%']實現環形圖效果
  • 數據按值排序,使圖表更美觀
  • 中心點稍微下移(55%),為標題留出空間

4. 樣式優化

itemStyle: {borderRadius: 5,borderColor: '#fff',borderWidth: 2,shadowBlur: 5,shadowColor: 'rgba(0, 0, 0, 0.2)'
},
label: {show: true,formatter: '{b}: {d}%'
},
emphasis: {itemStyle: {shadowBlur: 10,shadowOffsetX: 0,shadowColor: 'rgba(0, 0, 0, 0.5)'}
}

視覺增強:

  • 扇形區塊圓角
  • 白色邊框分隔各區塊
  • 懸浮時的高亮效果
  • 顯示百分比標簽

性能與體驗優化

  1. ??動畫效果??:兩個圖表都設置了animationDuration: 1500,1.5秒的動畫過渡使數據展示更生動

  2. ??響應式設計??:圖表容器使用百分比寬度,可以適應不同屏幕尺寸

  3. ??數據排序??:餅圖數據按值排序,提升可讀性

  4. ??標簽處理??:柱狀圖X軸標簽旋轉防止重疊,確保所有標簽可見

后端數據結構

理想的后端返回數據結構應包含:

{"data": {"names": ["社區A", "社區B", "社區C"],"nums": [100, 200, 150],"list": [{"name": "社區A", "value": 100},{"name": "社區B", "value": 200},{"name": "社區C", "value": 150}]}
}

這種結構同時滿足柱狀圖(分類+數值)和餅圖(名稱+值)的需求。

擴展思考

這個基礎實現還可以進一步擴展:

  1. ??響應式調整??:監聽窗口大小變化,調用ECharts的resize()方法

  2. ??主題切換??:使用ECharts的主題功能實現白天/黑夜模式切換

  3. ??數據刷新??:定時獲取新數據并更新圖表

  4. ??圖表聯動??:實現兩個圖表間的交互聯動

  5. ??導出功能??:添加圖表導出為圖片的功能

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

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

相關文章

Qt 綜述:從基礎到一般應用

摘要&#xff1a; Qt&#xff0c;作為久經考驗的跨平臺C開發框架&#xff0c;以其強大的功能、豐富的類庫和靈活的機制&#xff0c;在桌面應用、嵌入式系統、網絡編程等領域占據重要地位。本文將深入解析Qt的核心技術體系&#xff0c;涵蓋基礎架構、核心機制、UI開發、外觀定制…

基于PyTorch一文講清楚損失函數與激活函數并配上詳細的圖文講解

PyTorch損失函數與激活函數 目錄 激活函數詳解損失函數詳解實戰案例性能優化技巧 激活函數詳解 1. 什么是激活函數&#xff1f; 激活函數是神經網絡中的關鍵組件&#xff0c;它決定了神經元是否應該被激活。沒有激活函數&#xff0c;神經網絡就只是線性變換的堆疊&#xf…

蒼穹外賣-Day1 | 環境搭建、nginx、git、令牌、登錄加密、接口文檔、Swagger

目錄 nginx&#xff1a; nginx反向代理和負載均衡概念 nginx反向代理和負載均衡如何配置&#xff1f; 后端環境&#xff1a;maven管理 sky-common sky-pojo sky-server&#xff1a; 后端環境搭建--Git進行版本控制 后端數據庫--Mysql 前后端聯調 前后端運行&#xf…

論文閱讀-ZeroDCE和ZeroDCE++

文章目錄1 概述2 模塊2.1 總體說明2.2 LE曲線&#xff08;Light Enhance Curve&#xff09;2.3 DCE-Net2.4 無監督損失2.4.1 空間一致性損失2.4.2 曝光控制損失2.4.3 顏色恒定損失2.4.4 照明平滑度損失2.5 ZeroDCE3 效果3.1 不同損失函數組合的效果3.2 參數設置影響3.3 訓練數據…

Web自動化技術選擇

我想學習自動化技術&#xff0c;我的訴求是&#xff1a; 1.我想做自動報社保功能&#xff0c;先從我們自己的系統里面下載Excel&#xff0c;然后自動登錄到社保局的系統&#xff0c;自動填寫Excel&#xff0c;自動上傳Excel。 2.可以自動的到社保局的系統里面查下數據&#xff…

【celeba】-數據集的介紹

CelebA 數據集在 MTCNN 中的使用 1 數據集結構 CelebA_副本/ ├── Anno/ │ ├── list_bbox_celeba.txt # 邊界框 │ ├── list_landmarks_celeba.txt # 5 關鍵點 │ ├── list_attr_celeba.txt # 40 屬性 │ └── identity_CelebA.txt …

解讀 GPT-5:從“博士級 AI 專家”能力到 OpenAI API Key 獲取與實踐(提示工程→性能調優全流程)

GPT-5深度解讀&#xff1a;一位“博士級專家”的誕生與思考第一部分&#xff1a;新范式——化繁為簡的統一智能體 OpenAI的GPT-5&#xff0c;遠不止是一次常規的模型升級。它的發布&#xff0c;標志著一種顛覆性的架構思想變革&#xff1a;從過去那個讓用戶在各種“Turbo”、“…

8.3.1 注冊服務中心Etcd

etcd是什么 etcd 是一個分布式鍵值對存儲&#xff0c;設計用來可靠而快速的保存關鍵數據并提供訪問。通過分布式鎖&#xff0c; leader選舉保障可靠的分布式協同。 etcd 特點 完全復制&#xff0c;集群中的每個節點均擁有全量數據 強一致性&#xff0c;etcd通過raft共識算法…

異或循環冗余

異或代碼CRC8-ITU例程比較計算CRC16異或改進測試重點代碼 def fun_crc(datas):crc 0xFF poly 0x07 for i in range(len(datas)):for j in range(7, -1, -1):if (crc & 0x80) 0x80: crc (crc << 1) ^ polyelse:crc (crc << 1)if (datas[i] & 2**j):#值…

一款輕量、免費、無廣告,強大的演示工具,支持屏幕放大、涂鴉、截圖、錄屏

軟件介紹 ZoomIt&#xff0c;是一款輕量、免費、無廣告&#xff0c;強大的演示工具&#xff0c;支持屏幕放大、涂鴉、截圖、錄屏等。在系統托盤中不顯示的運行&#xff0c;可自定義快捷鍵&#xff0c;使用方面。 軟件基礎功能 屏幕放大&#xff1a;按下快捷鍵“Ctrl1”可進入…

從街亭失守看管理

最近看了《三國演義》&#xff0c;重溫了街亭失守事件&#xff0c;從馬謖最耀眼的登場來看就是&#xff0c;火燒藤甲兵計策和諸葛亮不謀而合&#xff0c;說明馬謖確實是有真材實料的&#xff0c;但在守街亭的任務上&#xff0c;諸葛亮也躊躇過又對先帝的遺言“馬謖不可重用”記…

全面解析 URL 重定向原理:從協議、實現到安全實踐

一、什么是 URL 重定向&#xff1f; URL 重定向&#xff08;URL Redirection&#xff09;是 Web 技術中一種將用戶請求的 URL 自動轉向另一個目標 URL 的機制。用戶可能完全不會察覺跳轉發生&#xff0c;因為瀏覽器在幕后完成了一切。 重定向通常用于以下場景&#xff1a; 網…

多任務 Transformer 模型的高效任務間注意力

抽象 在計算機視覺和更廣泛的深度學習領域&#xff0c;Transformer 架構已被公認為許多應用程序的最先進技術。然而&#xff0c;對于多任務學習&#xff0c;與單任務模型相比&#xff0c;可能需要更多的查詢&#xff0c;考慮到實際的硬件限制&#xff0c;它的多頭注意力通常接近…

QT的常用控件說明

文章目錄基本的代碼的模板Label控件font字體相關Button 控件CheckBox 控件Radio控件ComboBox控件LineEdit 控件基本的代碼的模板 class MainWindow(QWidget):def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs) # 調用父類初始化方法# 聲明窗口實例# 代…

5Python異常處理與模塊導入全指南

目錄 什么是異常&#xff1f; 異常的捕獲方法&#xff1a; 為什么要捕獲異常&#xff1f; 捕獲異常的語法&#xff1a; 異常的else和finally語法&#xff1a; 什么是異常&#xff1f; 異常就是程序運行過程中出現了錯誤&#xff0c;也就是我們常說的出bug了-。- 異常的捕…

區塊鏈密碼學簡介

區塊鏈密碼學簡介 一、對稱密碼算法 概述 對稱密碼算法的主要特點是使用相同的密鑰進行加密和解密。這類算法根據其加密方式大致可以分為兩類:流密碼和分組密碼。區塊鏈技術主要采用分組密碼。流密碼以數據流的形式逐位或逐字節加密,而分組密碼則將數據分成固定大小的塊進行…

GridKernalGateway

GridKernalGateway 是 Apache Ignite 架構中一個關鍵的安全與狀態管理組件&#xff0c;它的作用是 “在公共 API 和內部內核&#xff08;kernal&#xff09;之間建立安全、可控的訪問通道”。 我們可以把它理解為一個 “門衛 狀態哨兵”&#xff0c;確保外部調用不會在 Ignite…

MySQL索引、B+樹相關知識總結

MySQL索引、B樹相關知識匯總一、有一個查詢需求&#xff0c;MySQL中有兩個表&#xff0c;一個表1000W數據&#xff0c;另一個表只有幾千數據&#xff0c;要做一個關聯查詢&#xff0c;如何優化&#xff1f;1、為關聯字段建立索引2、小表驅動大表二、b樹和b樹的區別1、更高的查詢…

Java學習進階 -- 泛型的繼承和通配符及綜合練習

首先&#xff0c;泛型不具備繼承性&#xff0c;但是數據具備繼承性1.核心概念解析泛型不具備繼承性即使類型A是類型B的子類&#xff0c;Generic<A>也不是Generic<B>的子類這是Java泛型的類型安全設計&#xff0c;防止不安全的類型轉換數據具備繼承性泛型容器中的元…

如何實現在多跳UDP傳輸場景,保證單文件和多文件完整傳輸的成功率?

如何實現在多跳UDP傳輸場景&#xff0c;保證單文件和多文件完整傳輸的成功率&#xff1f; 一、前言 UDP&#xff08;User Datagram Protocol&#xff09;是一個輕量、無連接的傳輸協議&#xff0c;廣泛用于低延遲、高吞吐的應用中&#xff0c;如視頻流、實時游戲等。然而&…