一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第7天,点击查看活动详情。
Ucharts基础通用属性
准备
颜色值:
color: '#2fc25b'
color: '#facc14'
color: '#f04864'
HTML部分
<view class="qiun-charts">
<canvas canvas-id="canvasLineA" class="charts" id="canvasLineA"
disable-scroll=true :ontouch='true' :canvas2d='true'
@touchstart="touchLineA" @touchmove="moveLineA"
@touchend="touchEndLineA"></canvas>
</view>
css部分
.qiun-charts {
width: 630rpx;
height: 420rpx;
background-color: #FFFFFF;
user-select: none;
position: relative;
z-index: 500;
}
.charts {
background-color: #FFFFFF;
position: relative;
overflow: hidden;
width: 630rpx;
height: 420rpx;
border-width: 0rpx;
z-index: 500;
}
js部分:
pixelRatio:1,像素比,默认为1
折线图数据
//折线图数据
showLineB(canvasId, chartData) {
canvaLineB = new uCharts({
// $this: this,
// canvasId: canvasId,
context: uni.createCanvasContext(canvasId, this),
type: 'column', //类型
fontSize: 10,
background: '#fff', //canvas背景颜色
pixelRatio: this.pixelRatio,
animation: true, //动画效果开启
enableScroll: true, //可拖拽拉伸
//是否开启图表可拖拽滚动 默认false
//支持line, area, column, candle图表类型
//(需配合绑定@touchstart, @touchmove, @touchend方法)
enableMarkLine:true,
//是否显示辅助线 默认false 支持line, area, column, candle图表类型
legend:true,//图例设置,是否显示图表下方各类别的标识,默认为 true
disableScroll: true,
//在图表上滑动时禁止页面滚动。
//开启后,触摸图表时将会禁止屏幕滚动以及下拉刷新
dataLabel: true, //显示上方文案
touchMoveLimit: 70,//图表拖拽时,每秒重新渲染的帧数
enableScroll: true, //可拖拽拉伸
dataPointShape:true,//是否显示数据点的图形标识
dataPointShapeType: "hollow", //空心 图形标识点显示类型
"padding": [ 15,15, 0,5], //图表的边距
categories: chartData.categories, //数据
series: chartData.series, //数据
xAxis: {
"disabled": false, //是否启用 不绘制X轴
type:grid, // X轴网格样式,可选calibration(刻度)、grid(网格)
"gridColor": "#CCCCCC", //X轴网格颜色 例如#7cb5ec
"gridType": "solid", //X轴网格线型 'solid'为实线、'dash'为虚线`
"dashLength": 4, //X轴网格为虚线时,单段虚线长度
"gridEval": 1,
labelCount: 4, //默认显示个数 X轴可见区域标签数量,
//X轴数刻度标签单屏幕限制显示数量
itemCount:4,//x轴单屏显示数据的数量,默认为5个,
// 仅在启用enableScroll时有效
scrollShow:true,//新增是否显示滚动条,默认false
scrollAlign:'left',//滚动条初始位置
scrollBackgroundColor:'#F7F7FF',//默认为 #EFEBEF
scrollColor:'#DEE7F7',//默认为 #A6A6A6
disableGrid: true, //不绘制X轴网格(即默认绘制网格)
"axisLine": true, //坐标轴刻度线是否显示 注v1.9.0有效
"axisLineColor": "#CCCCCC", //坐标轴轴线颜色 注v1.9.0有效
"calibration": false, //坐标轴刻度线是否显示 注v1.9.0有效
"fontColor": "#666666", //X轴数据点颜色 例如#7cb5ec
"fontSize": 13,
"rotateLabel": false, //X轴刻度标签是否旋转(仅在文案超过单屏宽度时有效) ),默认为5个
"boundaryGap": "center", //折线图、区域图起画点结束点方法:center为单元格中间起画,justify为0点起画即两端对齐
"disableGrid": true,
"scrollShow": false, //新增是否显示滚动条,默认false 配合拖拽滚动使用(即仅在启用enableScroll时有效)
"scrollAlign": "left", //滚动条初始位置,left为数据整体左对齐
"scrollColor": "#A6A6A6", //默认为 #A6A6A6
"scrollBackgroundColor": "#EFEBEF", //默认为 #EFEBEF
"format": "",
},
yAxis: {
//disabled:true //不绘制Y轴
format: '',//自定义Y轴文案显示
min:50, //Y轴起始值
max:250, //Y轴终止值
title:'Y轴title',//Y轴title
disableGrid: true, //不绘制Y轴网格(即默认绘制网格)
splitNumber:5, // Y轴网格数量
gridType:'dash', // Y轴网格线型 'solid'为实线、'dash'为虚线
gridColor:'#CCCCCC', // Y轴网格颜色 例如#7cb5ec
dashLength:10, // Y轴网格为虚线时,单段虚线长度
fontColor:'', //Y轴数据点颜色 例如#7cb5ec
titleFontColor:"",Y轴title颜色 例如#7cb5ec
data:[
{axisLine: true, //坐标轴轴线是否显示
axisLineColor: 'blue', //坐标轴轴线颜色
} ]
},
"legend": {
"show": false,
},
width: this.cWidth * this.pixelRatio,
height: this.cHeight * this.pixelRatio,
extra: {
line: {
type: 'straight', //straight直线
width: 2
}
// 以下是柱状图
column: {
// 颜色支持线性渐变
color: '#2fc25b',
// {
// type: 'linear',
// colorStops: [{
// offset: 0,
// color: '#2fc25b' // 0% 处的颜色
// }, {
// offset: 1,
// color: '#2fc25b' // 100% 处的颜色
// }],
// global: false ,// 缺省为 false
// },
// 圆角半径,单位px,必须传入数组分别指定 4 个圆角半径
barBorderRadius: [30, 30, 0, 0],
// 半圆边框
barBorderCircle: true,
// 透明渐变(值范围0到1,自下而上渐变透明显示column条,值越小透明程度越高)
opacityColor: 0.2,
// 白色渐变(值范围0到1,自下而上向白色渐变显示column条,值越大白色程度越高)
linearColor: 0.9,
//多series之间的间距
width: 10,
// color:'#2fc25b',
}
}
});
},
最后methods里面搭配相应的方法,搭配该方法才能使图表可以拖动使用,X轴拖动滚动事件
//A的滚动事件
touchLineA(e) {
canvaLineA.scrollStart(e);
},
moveLineA(e) {
canvaLineA.scroll(e);
},
touchEndLineA(e) {
canvaLineA.scrollEnd(e);
//下面是toolTip事件,如果滚动后不需要显示,可不填写
canvaLineA.showToolTip(e, {
format: function(item, category) {
return category + ' ' + item.name + ':' + item.data
}
});
},