[TOC]
# 導入
## Vue 項目引入
1、`npm install echarts`
2、main.js 添加如下代碼
```js
import echarts from 'echarts'
Vue.prototype.$echarts = echarts
```
3、使用時注意將`echarts.init()` 之類的改為`this.$echarts.init(dom)`,`new this.$echarts.graphic.LinearGradient`
>TODO:按需導入?
# 入門示例
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ECharts</title>
<!-- 引入 echarts.js -->
<script src="echarts.min.js"></script>
</head>
<body>
<!-- 為ECharts準備一個具備大小(寬高)的Dom -->
<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
// 基于準備好的dom,初始化echarts實例
var myChart = echarts.init(document.getElementById('main'));
// 指定圖表的配置項和數據
var option = {
title: {
text: 'ECharts 入門示例'
},
tooltip: {},
legend: {
data:['銷量']
},
xAxis: {
data: ["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"]
},
yAxis: {},
series: [{
name: '銷量',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
}]
};
// 使用剛指定的配置項和數據顯示圖表。
myChart.setOption(option);
</script>
</body>
</html>
```
# 設置樣式
ECharts 提供了豐富的自定義配置選項,并且能夠從全局、系列、數據三個層級去設置數據圖形的樣式。
## 顏色主題(Theme)
可以使用默認的主題:
```js
var chart = echarts.init(dom, 'light');
var chart = echarts.init(dom, 'dark');
```
如果主題保存為 JSON 文件,那么可以自行加載和注冊,例如:
```js
// 假設主題名稱是 "vintage"
$.getJSON('xxx/xxx/vintage.json', function (themeJSON) {
echarts.registerTheme('vintage', JSON.parse(themeJSON))
var chart = echarts.init(dom, 'vintage');
});
```
如果保存為 UMD 格式的 JS 文件,那么支持了自注冊,直接引入 JS 文件即可:
```js
// HTML 引入 vintage.js 文件后(假設主題名稱是 "vintage")
var chart = echarts.init(dom, 'vintage');
// ...
```
## 調色盤
調色盤,可以在 option 中設置。它給定了一組顏色,圖形、系列會自動從其中選擇顏色。 可以設置全局的調色盤,也可以設置系列自己專屬的調色盤。
```js
option = {
// 全局調色盤。
color: ['#c23531','#2f4554', '#61a0a8', '#d48265', '#91c7ae','#749f83', '#ca8622', '#bda29a','#6e7074', '#546570', '#c4ccd3'],
series: [{
type: 'bar',
// 此系列自己的調色盤。
color: ['#dd6b66','#759aa0','#e69d87','#8dc1a9','#ea7e53','#eedd78','#73a373','#73b9bc','#7289ab', '#91ca8c','#f49f42'],
...
}, {
type: 'pie',
// 此系列自己的調色盤。
color: ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C','#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'],
...
}]
}
```
調色盤的作用????
## 直接樣式設置(itemStyle、lineStyle、areaStyle、label、...)
## 視覺映射(visualMap)
# 異步加載與數據更新
`ECharts`中實現異步數據的更新非常簡單,在圖表初始化后不管任何時候只要異步獲取數據后通過`setOption`填入數據和配置項就行。
先設置一個空的直角坐標軸,獲取數據后填入數據:
```
var myChart = echarts.init(document.getElementById('main'));
// 顯示標題,圖例和空的坐標軸
myChart.setOption({
title: {
text: '異步數據加載示例'
},
tooltip: {},
legend: {
data:['銷量']
},
xAxis: {
data: []
},
yAxis: {},
series: [{
name: '銷量',
type: 'bar',
data: []
}]
});
// 異步加載數據
$.get('data.json').done(function (data) {
// 填入數據
myChart.setOption({
xAxis: {
data: data.categories
},
series: [{
// 根據名字對應到相應的系列
name: '銷量',
data: data.data
}]
});
});
```
## loading 動畫
ECharts 默認有提供了一個簡單的加載動畫。只需要調用 `showLoading` 方法顯示。數據加載完成后再調用 `hideLoading` 方法隱藏加載動畫。
```js
myChart.showLoading();
$.get('data.json').done(function (data) {
myChart.hideLoading();
myChart.setOption(...);
});
```
## 數據動態更新
[https://www.echartsjs.com/gallery/editor.html?c=doc-example/tutorial-dynamic-data](https://www.echartsjs.com/gallery/editor.html?c=doc-example/tutorial-dynamic-data)
# 配置
來源:[https://www.cnblogs.com/1996zy/p/8963385.html](https://www.cnblogs.com/1996zy/p/8963385.html)
## 1、title(圖表標題)
```js
title: {
x: 'left', // 水平安放位置,默認為左對齊,可選為:'center' | 'left' | 'right' | {number}(x坐標,單位px)
y: 'top', // 垂直安放位置,默認為全圖頂端,可選為:'top' |'bottom' | 'center' | {number}(y坐標,單位px)
// textAlign: null // 水平對齊方式,默認根據 x 設置自動調整
backgroundColor: 'rgba(0,0,0,0)',
borderColor: '#ccc', // 標題邊框顏色
borderWidth: 0, // 標題邊框線寬,單位 px,默認為 0(無邊框)
padding: 5, // 標題內邊距,單位 px,默認各方向內邊距為 5,
// 接受數組分別設定上右下左邊距,同 css
itemGap: 10, // 主副標題縱向間隔,單位px,默認為10,
textStyle: {
fontSize: 18,
fontWeight: 'bolder',
color: '#333' // 主標題文字顏色
},
subtextStyle: {
color: '#aaa' // 副標題文字顏色
},
text: '', // 主標題文本
subtext: '' // 副標題文本
}
```
## 2、legend(圖例組件)
示例:[https://www.echartsjs.com/gallery/editor.html?c=pie-legend&edit=1&reset=1](https://www.echartsjs.com/gallery/editor.html?c=pie-legend&edit=1&reset=1)

圖例組件展現了不同系列的標記(symbol),顏色和名字。可以通過點擊圖例控制哪些系列不顯示。
當圖例數量過多時,可以使用 滾動圖例(垂直) 或 滾動圖例(水平),通過`legend.type`來控制
`plain`:普通圖例。缺省就是普通圖例。
`scroll`:可滾動翻頁的圖例。當圖例數量較多時可以使用。
如果設置為 scroll,可以有更多的細節配置:[https://echarts.baidu.com/option.html#legend.type](https://echarts.baidu.com/option.html#legend.type)
```js
legend: {
type: 'plain', // 缺省為 plain,圖例較多時可使用 scroll
orient: 'horizontal', // 布局方式,默認為水平布局,可選為:'horizontal' | 'vertical'
top: 20,
left: 20, // 像素值 | 百分比 | left | center | right
bottom: 20, // 像素值 | 百分比 | top | middle | bottom
right: 20, // 圖例距容器 上 | 右 | 下 | 左 的距離
width: .., // 圖例寬度,默認自適應
itemGap: 10, // 各個item之間的間隔,單位px,默認為10,
itemWidth: 20, // 圖例圖形寬度
itemHeight: 14, // 圖例圖形高度
textStyle: {
color: '#333' // 圖例文字顏色
}
},
```
- 序言 & 更新日志
- H5
- Canvas
- 序言
- Part1-直線、矩形、多邊形
- Part2-曲線圖形
- Part3-線條操作
- Part4-文本操作
- Part5-圖像操作
- Part6-變形操作
- Part7-像素操作
- Part8-漸變與陰影
- Part9-路徑與狀態
- Part10-物理動畫
- Part11-邊界檢測
- Part12-碰撞檢測
- Part13-用戶交互
- Part14-高級動畫
- CSS
- SCSS
- codePen
- 速查表
- 面試題
- 《CSS Secrets》
- SVG
- 移動端適配
- 濾鏡(filter)的使用
- JS
- 基礎概念
- 作用域、作用域鏈、閉包
- this
- 原型與繼承
- 數組、字符串、Map、Set方法整理
- 垃圾回收機制
- DOM
- BOM
- 事件循環
- 嚴格模式
- 正則表達式
- ES6部分
- 設計模式
- AJAX
- 模塊化
- 讀冴羽博客筆記
- 第一部分總結-深入JS系列
- 第二部分總結-專題系列
- 第三部分總結-ES6系列
- 網絡請求中的數據類型
- 事件
- 表單
- 函數式編程
- Tips
- JS-Coding
- Framework
- Vue
- 書寫規范
- 基礎
- vue-router & vuex
- 深入淺出 Vue
- 響應式原理及其他
- new Vue 發生了什么
- 組件化
- 編譯流程
- Vue Router
- Vuex
- 前端路由的簡單實現
- React
- 基礎
- 書寫規范
- Redux & react-router
- immutable.js
- CSS 管理
- React 16新特性-Fiber 與 Hook
- 《深入淺出React和Redux》筆記
- 前半部分
- 后半部分
- react-transition-group
- Vue 與 React 的對比
- 工程化與架構
- Hybird
- React Native
- 新手上路
- 內置組件
- 常用插件
- 問題記錄
- Echarts
- 基礎
- Electron
- 序言
- 配置 Electron 開發環境 & 基礎概念
- React + TypeScript 仿 Antd
- TypeScript 基礎
- React + ts
- 樣式設計
- 組件測試
- 圖標解決方案
- Storybook 的使用
- Input 組件
- 在線 mock server
- 打包與發布
- Algorithm
- 排序算法及常見問題
- 劍指 offer
- 動態規劃
- DataStruct
- 概述
- 樹
- 鏈表
- Network
- Performance
- Webpack
- PWA
- Browser
- Safety
- 微信小程序
- mpvue 課程實戰記錄
- 服務器
- 操作系統基礎知識
- Linux
- Nginx
- redis
- node.js
- 基礎及原生模塊
- express框架
- node.js操作數據庫
- 《深入淺出 node.js》筆記
- 前半部分
- 后半部分
- 數據庫
- SQL
- 面試題收集
- 智力題
- 面試題精選1
- 面試題精選2
- 問答篇
- 2025面試題收集
- Other
- markdown 書寫
- Git
- LaTex 常用命令
- Bugs