图表示例
标准数据格式
Area: {
categories: ['2012', '2013', '2014', '2015', '2016', '2017'],
series: [{
name: '成交量A',
data: [100, 80, 95, 150, 112, 132],
color: '#facc14'
}, {
name: '成交量B',
data: [70, 40, 65, 100, 44, 68],
color: '#2fc25b'
}, {
name: '成交量C',
data: [35, 20, 25, 37, 4, 20],
color: '#1890ff'
}]
}
调用方法
canvaArea=new uCharts({
$this:_self,
canvasId: canvasId,
type: 'area',
fontSize:11,
legend:true,
dataLabel:false,
dataPointShape:true,
background:'#FFFFFF',
pixelRatio:_self.pixelRatio,
categories: chartData.categories,
series: chartData.series,
animation: true,
xAxis: {
type:'grid',
gridColor:'#CCCCCC',
gridType:'dash',
dashLength:8
},
yAxis: {
gridType:'dash',
gridColor:'#CCCCCC',
dashLength:8,
splitNumber:5,
min:10,
max:180,
},
width: _self.cWidth*_self.pixelRatio,
height: _self.cHeight*_self.pixelRatio,
extra: {
area:{
type: 'straight',
opacity:0.2,
addLine:true,
width:2
}
}
});
完整代码示例
<template>
<view class="qiun-columns">
<view class="qiun-bg-white qiun-title-bar qiun-common-mt" >
<view class="qiun-title-dot-light">基本区域图</view>
</view>
<view class="qiun-charts" >
<canvas canvas-id="canvasArea" id="canvasArea" class="charts" @touchstart="touchArea"></canvas>
</view>
</view>
</template>
<script>
import uCharts from '@/components/u-charts/u-charts.js';
var _self;
var canvaArea=null;
export default {
data() {
return {
cWidth:'',
cHeight:'',
pixelRatio:1,
}
},
onLoad() {
_self = this;
this.cWidth=uni.upx2px(750);
this.cHeight=uni.upx2px(500);
this.getServerData();
},
methods: {
getServerData(){
uni.request({
url: 'https://www.easy-mock.com/mock/5cc586b64fc5576cba3d647b/uni-wx-charts/chartsdata2',
data:{
},
success: function(res) {
console.log(res.data.data)
let Area={categories:[],series:[]};
//这里我后台返回的是数组,所以用等于,如果您后台返回的是单条数据,需要push进去
Area.categories=res.data.data.Area.categories;
Area.series=res.data.data.Area.series;
_self.showArea("canvasArea",Area);
},
fail: () => {
_self.tips="网络错误,小程序端请检查合法域名";
},
});
},
showArea(canvasId,chartData){
canvaArea=new uCharts({
$this:_self,
canvasId: canvasId,
type: 'area',
fontSize:11,
legend:true,
dataLabel:false,
dataPointShape:true,
background:'#FFFFFF',
pixelRatio:_self.pixelRatio,
categories: chartData.categories,
series: chartData.series,
animation: true,
xAxis: {
type:'grid',
gridColor:'#CCCCCC',
gridType:'dash',
dashLength:8
},
yAxis: {
gridType:'dash',
gridColor:'#CCCCCC',
dashLength:8,
splitNumber:5,
min:10,
max:180,
},
width: _self.cWidth*_self.pixelRatio,
height: _self.cHeight*_self.pixelRatio,
extra: {
area:{
type: 'straight',
opacity:0.2,
addLine:true,
width:2
}
}
});
},
touchArea(e) {
canvaArea.showToolTip(e, {
format: function (item, category) {
return category + ' ' + item.name + ':' + item.data
}
});
}
}
}
</script>
<style>
/*样式的width和height一定要与定义的cWidth和cHeight相对应*/
.qiun-charts {
width: 750upx;
height: 500upx;
background-color: #FFFFFF;
}
.charts {
width: 750upx;
height: 500upx;
background-color: #FFFFFF;
}
</style>