uniapp小程序使用echarts
时间: 2023-04-24 07:05:05 浏览: 539
Uniapp是一个跨平台的开发框架,它支持使用Echarts来开发小程序。只需要安装Echarts插件,就可以在Uniapp小程序中使用Echarts。详情请参考Uniapp官网和Echarts官网。
相关问题
uniapp 小程序 使用echarts 绘制横向柱状图
首先,你需要在uniapp项目中安装echarts插件。可以通过以下命令进行安装:
```
npm install echarts --save
```
安装完成之后,在需要使用echarts的页面或组件中引入echarts:
```javascript
import * as echarts from 'echarts';
```
接着,你可以在页面或组件中使用echarts绘制横向柱状图。以下是一个简单的示例:
```html
<template>
<view>
<ec-canvas id="mychart" canvas-id="mychart"></ec-canvas>
</view>
</template>
<script>
import * as echarts from 'echarts';
export default {
onReady() {
// 在页面或组件的onReady方法中绘制图表
this.drawChart();
},
methods: {
drawChart() {
const chart = echarts.init(this.$refs.mychart.canvas, null, {
width: uni.upx2px(375),
height: uni.upx2px(200)
});
const option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: 'value',
boundaryGap: [0, 0.01]
},
yAxis: {
type: 'category',
data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
},
series: [
{
name: '销量',
type: 'bar',
data: [120, 200, 150, 80, 70, 110, 130]
}
]
};
chart.setOption(option);
}
}
}
</script>
```
在这个示例中,我们使用了uniapp自带的ec-canvas组件来绘制echarts图表。通过this.$refs.mychart.canvas获取到canvas元素,然后使用echarts.init方法初始化图表。接着,我们可以通过option来配置图表的样式和数据。最后,使用chart.setOption方法将配置应用到图表中。
uniapp微信小程序echarts使用cdn引入
uniapp是一款跨平台的开发框架,可以帮助开发者快速地构建出多端应用。而echarts是一个非常优秀的可视化图表库,在uniapp中也可以很方便地引入使用。
如果你要在uniapp中使用微信小程序版的echarts,并且使用cdn引入,可以按照以下步骤:
1. 在项目根目录下的`pages.json`文件中添加如下配置:
```json
"usingComponents": {
"ec-canvas": "路径/ec-canvas/ec-canvas"
}
```
2. 在`ec-canvas`文件夹下新建一个`ec-canvas.vue`文件,并在其中添加如下代码:
```html
<template>
<canvas :canvas-id="canvasId" class="ec-canvas"></canvas>
</template>
<script>
import * as echarts from '路径/echarts.min.js'
export default {
props: {
canvasId: {
type: String,
default: 'ec-canvas'
},
ec: {
type: Object,
default: () => {}
}
},
data() {
return {
chart: null,
initOpts: {}
}
},
mounted() {
this.init()
},
methods: {
init() {
if (!this.ec) return
this.initOpts = Object.assign({}, this.ec, {
renderer: 'canvas',
width: this.getWidth(),
height: this.getHeight()
})
this.chart = echarts.init(this.$refs.canvas, null, this.initOpts)
this.chart.setOption(this.initOpts.option)
},
getWidth() {
const { width } = uni.getSystemInfoSync()
return width
},
getHeight() {
const { statusBarHeight, windowHeight } = uni.getSystemInfoSync()
const query = uni.createSelectorQuery().in(this)
query.select('.ec-canvas').boundingClientRect(data => {
this.height = data.height
}).exec()
return windowHeight - statusBarHeight - this.height
}
},
watch: {
ec: {
handler(val) {
if (!this.chart) return
this.initOpts = Object.assign({}, val, {
renderer: 'canvas',
width: this.getWidth(),
height: this.getHeight()
})
this.chart.setOption(this.initOpts.option)
},
deep: true
}
},
beforeDestroy() {
if (this.chart) {
this.chart.dispose()
this.chart = null
}
}
}
</script>
<style scoped>
.ec-canvas {
width: 100%;
height: 100%;
}
</style>
```
3. 在需要使用echarts的页面中,引入echarts的cdn链接,例如:
```html
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.9.0/echarts.min.js"></script>
```
4. 在页面中使用`ec-canvas`组件,并传入相应的参数,例如:
```html
<template>
<view>
<ec-canvas :ec="ec" :canvas-id="canvasId"></ec-canvas>
</view>
</template>
<script>
export default {
data() {
return {
canvasId: 'my-echart',
ec: {
option: {
title: {
text: '某站点用户访问来源',
subtext: '纯属虚构',
left: 'center'
},
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b}: {c} ({d}%)'
},
legend: {
orient: 'vertical',
left: 10,
data: ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎']
},
series: [
{
name: '访问来源',
type: 'pie',
radius: ['50%', '70%'],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: '30',
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: [
{ value: 335, name: '直接访问' },
{ value: 310, name: '邮件营销' },
{ value: 234, name: '联盟广告' },
{ value: 135, name: '视频广告' },
{ value: 1548, name: '搜索引擎' }
]
}
]
}
}
}
}
}
</script>
```
这样就可以在uniapp中使用微信小程序版的echarts并使用cdn引入了。
阅读全文