2021-6-1 前端達(dá)人
以前的百度echart(echarts.baidu.com),不過現(xiàn)在的ECharts 正在 Apache 開源基金會孵化中,因此域名(echarts.baidu.com)已不再使用,請訪問 echarts.apache.org。
ECharts,一個使用 JavaScript 實現(xiàn)的開源可視化庫,可以流暢的運行在 PC 和移動設(shè)備上,兼容當(dāng)前絕大部分瀏覽器(IE8/9/10/11,Chrome,F(xiàn)irefox,Safari等),底層依賴矢量圖形庫 ZRender,提供直觀,交互豐富,可高度個性化定制的數(shù)據(jù)可視化圖表。
現(xiàn)在廢話不多說,官網(wǎng)地址:https://echarts.apache.org/
點擊上面的網(wǎng)址就來到了echarts的官網(wǎng)了,最新版的Apache Echarts 是5.x的版本了。
官網(wǎng)大概就長下面的這個樣子。
然后點擊快速入門,我們先去把echarts安裝一下,按下圖所示進行操作。
作者的demo環(huán)境是用的vue-cli3的腳手架,將Echarts安裝到項目里
運行命令:
npm install echarts --save
//or yarn add echarts
安裝整個包到項目里
在項目里使用,先寫個測試用例,看看是否安裝成功了。
<template> <div id="charts-container" /> </template> <script> // 引入基本模板 import * as echarts from "echarts"; export default { name: "LineCharts", props: { options: { required: false, type: [Object], default: () => {}, }, }, data() { return { }; }, mounted() { this.init(); }, methods: { /**
* 初始化charts
*/ init() { // 基于準(zhǔn)備好的dom,初始化echarts實例 let myChart = echarts.init(document.getElementById('charts-container')); var option = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { type: 'value' }, series: [{ data: [120, 200, 150, 80, 70, 110, 130], type: 'bar', showBackground: true, backgroundStyle: { color: 'rgba(180, 180, 180, 0.2)' } }] }; myChart.setOption(option); } } }; </script> <style lang="scss" scoped> #charts-container { width: 100%; height: 410px; } </style>
我們使用了一個官網(wǎng)示例的代碼,是最簡單版本的Echart原型。
https://echarts.apache.org/examples/zh/editor.html?c=bar-background
舉個栗子,假如我們拿到的UI的設(shè)計圖如下,需要我們做一個柱狀圖,這個柱狀圖需要下面的這種樣式(本文不做100%的還原,僅做常用屬性的舉例子)。
其實看到這里,可能覺得我們剛剛寫到的測試Demo和UI的設(shè)計不一樣。所以才有了我們怎么樣將官網(wǎng)的簡單Demo配置成UI圖一致。
怎么快速完成這個UI圖的還原呢?首先我們要做的是找到這個UI圖所屬的Echarts類,如下圖中所示,找到“示例”,再找到“柱狀圖”。這樣我們就可以在柱狀圖中再找到基礎(chǔ)配置項。就是如Demo中的一樣。
接下來就應(yīng)該進行下一步的配置了,在配置這些屬性之前,你要先明白一點你的需求是啥。先看UI圖里的柱狀圖哪些地方是需要修改的,目前的肉眼所見“網(wǎng)格的樣式(需要改成虛線,全且顏色有變)、柱狀圖的顏色、需要有圖例、X和Y軸的刻度線不一樣”等等。
下一章節(jié)快速記住配置項的屬性。
首先我們記住這些屬性,就要對這些屬性進行一個分類。其實在官網(wǎng)中的《配置項手冊》已經(jīng)分類的很細(xì)了,但是由于Echarts的靈活度非常高,就導(dǎo)致了配置項手冊的東西看起來就越來越多了,看久了就會導(dǎo)致“眼睛疲憊”。
廢話不多說,直接開始,其實這些英文單次就對應(yīng)的屬性,稍微英文好點的就可以輕松點了,
按項目里常用的屬性排序,如下:
一級屬性(options.xxxx):
- 網(wǎng)格設(shè)置 ----- grid
![]()
{ grid: { borderColor: "rgba(222, 48, 48, 1)", show: true, backgroundColor: "rgba(188, 71, 71, 1)" } }
- X軸設(shè)置 ----- xAxis
![]()
{ xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], axisLabel: { //坐標(biāo)文字 color: '#24253B', interval: 0 }, axisLine: { lineStyle: { //坐標(biāo)軸顏色 color: '#C6C9FF' } }, axisTick: { //坐標(biāo)軸刻度 inside: true, //朝內(nèi) lineStyle: { color: '#A3A8FF' } } } }
- Y軸設(shè)置 ----- yAxis
![]()
yAxis: { type: 'value', axisLine: { show: !false, lineStyle: { //坐標(biāo)軸顏色 color: '#E6EAF9' } }, splitLine: { //網(wǎng)格設(shè)置 lineStyle: { color: '#DADCFF', type: 'dashed' } } },
- 系列設(shè)置(系列的數(shù)據(jù)) ----- series
也不難理解,就是你需要設(shè)置哪種圖表的數(shù)據(jù)樣式,就在里面找到對應(yīng)的type
- 全局字體樣式設(shè)置 ----- textStyle
這個也不難理解,設(shè)置的就是當(dāng)前這個圖表全局的字體樣式,設(shè)置之后會覆蓋默認(rèn)的字體樣式,這個也會有一個優(yōu)先級別,就是 單獨的子屬性設(shè)置 > 全局樣式 > 默認(rèn)
{ textStyle:{ color:'#f00' //設(shè)置全局的字體為紅色 } }
- 圖例設(shè)置 ----- legend
圖例就是對應(yīng)的每項數(shù)據(jù)的標(biāo)識符,讓你知道某種顏色對應(yīng)代表某種數(shù)據(jù)。
option = { color: ["#003366", "#006699", "#4cabce", "#e5323e"], //這個是四個圖例的樣色。 dataset: { source: [ ["type", "2012", "2013", "2014", "2015", "2016"], ["Forest", 320, 332, 301, 334, 390], ["Steppe", 220, 182, 191, 234, 290], ["Desert", 150, 232, 201, 154, 190], ["Wetland", 98, 77, 101, 99, 40] ] }, legend: { itemStyle: { color: "rgba(249, 0, 0, 1)" //這里的子屬性設(shè)置會覆蓋上面的設(shè)置 } }, xAxis: { type: "category", axisTick: { show: false } }, yAxis: {}, series: [{ type: "bar", seriesLayoutBy: "row" }, { type: "bar", seriesLayoutBy: "row" }, { type: "bar", seriesLayoutBy: "row" }, { type: "bar", seriesLayoutBy: "row" }] }
- 標(biāo)題設(shè)置 ----- title
這里的標(biāo)題可以分為主標(biāo)題和副標(biāo)題,可以使用show屬性去控制顯示隱藏。
{ title: { text: "Main Title", subtext: "Sub Title", left: "center", textStyle: { fontSize: 30, color: "rgba(225, 15, 15, 1)" }, subtextStyle: { fontSize: 20 } } }
- 提示設(shè)置(鼠標(biāo)懸浮到圖上的交互樣式)----- tooltip
這個就是提示組件,一般情況下設(shè)置的就是鼠標(biāo)懸浮到圖表上面的樣式。
- 工具欄設(shè)置 ----- toolbox
上圖箭頭所指區(qū)域就是工具欄了,功能就是配置圖表的常用工具,例如下載、圖表切換等等。
二級屬性(options.xxxx.xxx)
- 是否顯示某個樣式 ----- show(布爾類型)
重點記住這個show就可以了,大部分一級屬性都有這個屬性,就是控制顯示與隱藏的,需要就為true,不需要就為false。
- 坐標(biāo)軸網(wǎng)格設(shè)置----- splitLine(x軸和y軸都有的屬性)
這個屬性也不難理解,就是設(shè)置x或者y軸在網(wǎng)格中顯示的樣式,grid在全局就是所有的,這里設(shè)置就是針對每個坐標(biāo)軸的詳細(xì)設(shè)置。
yAxis: [{ type: "value", splitLine: { //坐標(biāo)的網(wǎng)格設(shè)置 lineStyle: { width: 5, type: "dashed", color: "rgba(244, 23, 23, 1)" } } }
- 字體設(shè)置----- textStyle
這里可能有些誤解了,子屬性的textStyle樣式一般是指在某個具體的熟悉里的字體樣式設(shè)置了,同js設(shè)置字體樣式的一樣。
![]()
yAxis: { type: "value", axisLabel: { //刻度標(biāo)簽文字設(shè)置 fontSize: 18, // color: "rgba(235, 33, 33, 1)" } }
- 圖形樣式設(shè)置 ----- itemStyle
這個屬性的設(shè)置也是大部分屬性設(shè)置都有的,可以理解為設(shè)置某個屬性的幾何屬性。
xAxis: { axisLine: { lineStyle: { //坐標(biāo)軸軸線樣式設(shè)置 color: "rgba(228, 13, 13, 1)", type: "dashed" } } }
- 線的樣式設(shè)置 ----- lineStyle
這個屬性主要就是這種這種視覺引導(dǎo)線的樣式的。
series: [{ type: "pie", labelLine: { lineStyle: { //引導(dǎo)線的樣式設(shè)置 color: "rgba(231, 16, 16, 1)", width: 2 }, length: 20 } }]
- 文本標(biāo)簽設(shè)置 ----- label
文中所標(biāo)記部分就是為某個標(biāo)簽的屬性設(shè)置,一般是指顯示在圖表數(shù)據(jù)中的文字。
series: [{ name: "Sale", type: "bar", data: [5, 20, 36, 10, 10, 20, 4], label: { show: true, fontSize: 16, color: "rgba(65, 215, 35, 1)", fontStyle: "italic", borderWidth: 0 } }]
- 標(biāo)簽的視覺引導(dǎo)線設(shè)置 ----- labelLine
這個屬性前面寫lineStyle的時候就已經(jīng)提到過了。
- 顯示的位置設(shè)置 ----- (left、right、top、bottom)等,都是同定位屬性一樣
這里不難看出我們將原來在頂部居中的圖例移動到了左側(cè)往下一點的位置,就是通過這個幾個屬性來控制的,大部分與數(shù)據(jù)無關(guān)的提示類都有這些屬性,如:工具欄、標(biāo)題、標(biāo)簽等。
- 透明度設(shè)置 ----- opacity
這也很好理解,就是想要哪個部分透明,就往哪里寫。
legend: { itemStyle: { opacity: 0.1 } },
- 格式化設(shè)置 ----- formatter
![]()
上面這些都是常用的一些屬性設(shè)置,你學(xué)廢了嗎?
其實通過上面的一個小節(jié)不難看出,Echarts的一些屬性設(shè)置都是很有規(guī)律的,只要找到這些規(guī)律即可快速的上手Echarts了。這作為一個Echarts的系列的文章,主要目的是讓學(xué)習(xí)Echart的朋友可以快速上手,會持續(xù)進行更新的。
藍(lán)藍(lán)設(shè)計建立了UI設(shè)計分享群,每天會分享國內(nèi)外的一些優(yōu)秀設(shè)計,如果有興趣的話,可以進入一起成長學(xué)習(xí),請掃碼藍(lán)小助,報下信息,藍(lán)小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務(wù)合作,也請與我們聯(lián)系。
部分借鑒自:csdn 作者:狼丶宇先生
藍(lán)藍(lán)設(shè)計( www.yvirxh.cn )是一家專注而深入的界面設(shè)計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計、BS界面設(shè)計 、 cs界面設(shè)計 、 ipad界面設(shè)計 、 包裝設(shè)計 、 圖標(biāo)定制 、 用戶體驗 、交互設(shè)計、 網(wǎng)站建設(shè) 、平面設(shè)計服務(wù)
藍(lán)藍(lán)設(shè)計的小編 http://www.yvirxh.cn