一个基于 JavaScript 的开源可视化图表库 查看更多 站点1 | 查看更多 站点2
基于 echarts 做了兼容处理,更多示例请访问 uni示例 站点1 | uni示例 站点2 | 官方示例
Q群:1046793420
H5 |
微信小程序 |
支付宝小程序 |
百度小程序 |
头条小程序 |
QQ 小程序 |
App |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
- 第一步、在uniapp 插件市场 找到 百度图表 导入
- 第二步、安装 echarts 或者直接使用插件内的echarts.min文件
cmd
pnpm add echarts
-or-
npm install echarts
注意
- 🔔 必须使用hbuilderx 3.4.8-alpha及以上
- 🔔 echarts 5.3.0及以上
- 🔔 如果是
cli
项目需要主动 import
插件
js
import LEchart from '@/uni_modules/lime-echart/components/l-echart/l-echart.vue';
export default {
components: {LEchart}
}
<view><l-echart ref="chart" @finished="init"></l-echart></view>
import * as echarts from '@/uni_modules/lime-echart/static/echarts.min'
import * as echarts from 'echarts'
import * as echarts from 'echarts/core';
import {LineChart, BarChart} from 'echarts/charts';
import {TitleComponent,TooltipComponent,GridComponent, DatasetComponent, TransformComponent, LegendComponent } from 'echarts/components';
import {LabelLayout,UniversalTransition} from 'echarts/features';
import {CanvasRenderer} from 'echarts/renderers';
echarts.use([
LegendComponent,
TitleComponent,
TooltipComponent,
GridComponent,
DatasetComponent,
TransformComponent,
LineChart,
BarChart,
LabelLayout,
UniversalTransition,
CanvasRenderer
]);
export default {
data() {
return {
option: {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
},
confine: true
},
legend: {
data: ['热度', '正面', '负面']
},
grid: {
left: 20,
right: 20,
bottom: 15,
top: 40,
containLabel: true
},
xAxis: [
{
type: 'value',
axisLine: {
lineStyle: {
color: '#999999'
}
},
axisLabel: {
color: '#666666'
}
}
],
yAxis: [
{
type: 'category',
axisTick: { show: false },
data: ['汽车之家', '今日头条', '百度贴吧', '一点资讯', '微信', '微博', '知乎'],
axisLine: {
lineStyle: {
color: '#999999'
}
},
axisLabel: {
color: '#666666'
}
}
],
series: [
{
name: '热度',
type: 'bar',
label: {
normal: {
show: true,
position: 'inside'
}
},
data: [300, 270, 340, 344, 300, 320, 310],
},
{
name: '正面',
type: 'bar',
stack: '总量',
label: {
normal: {
show: true
}
},
data: [120, 102, 141, 174, 190, 250, 220]
},
{
name: '负面',
type: 'bar',
stack: '总量',
label: {
normal: {
show: true,
position: 'left'
}
},
data: [-20, -32, -21, -34, -90, -130, -110]
}
]
},
};
},
mounted() {
this.$refs.chart.init(echarts, chart => {
chart.setOption(this.option);
});
},
methods: {
async init() {
const chart = await this.$refs.chart.init(echarts);
chart.setOption(this.option)
}
}
}
this.$refs.chart.setOption(data)
- 在有些场景下,我们希望当容器大小改变时,图表的大小也相应地改变。
this.$refs.chart.resize()
this.$refs.chart.resize({width: 375, height: 375})
- 微信小程序
2d
只支持 真机调试2.0
- 微信开发工具会出现canvas不跟随页面的情况,真机不影响
- toolbox 不支持
saveImage
- echarts 5.3.0 的 lines 不支持 trailLength,故需设置为
0
- dataZoom H5不要设置
showDetail
参数 |
说明 |
类型 |
默认值 |
版本 |
custom-style |
自定义样式 |
string |
- |
- |
type |
指定 canvas 类型 |
string |
2d |
|
is-disable-scroll |
触摸图表时是否禁止页面滚动 |
boolean |
false |
|
beforeDelay |
延迟初始化 (毫秒) |
number |
30 |
|
enableHover |
PC端使用鼠标悬浮 |
boolean |
false |
|
参数 |
说明 |
init(echarts, chart => {}) |
初始化调用函数,第一个参数是传入echarts ,第二个参数是回调函数,回调函数的参数是 chart 实例 |
setChart(chart => {}) |
已经初始化后,请使用这个方法,是个回调函数,参数是 chart 实例 |
setOption(data) |
图表配置项,用于更新 ,传递是数据 option |
clear() |
清空当前实例,会移除实例中所有的组件和图表。 |
dispose() |
销毁实例 |
showLoading() |
显示加载 |
hideLoading() |
隐藏加载 |
canvasToTempFilePath(opt) |
用于生成图片,与官方使用方法一致,但不需要传canvasId |
如果你觉得本插件,解决了你的问题,赠人玫瑰,手留余香。
