因为项目中x轴只需要一个类目,所以x轴和y轴会出现只有一条数据的情况,那么按照ucharts的示例就会出现这种问题,很不美观
![](https://img-blog.csdnimg.cn/img_convert/f73a004eacf5c60344fda63fc1ca1818.png)
或是x轴和y轴1条以上5条以下的数据,并且里面的值都小于5,又会出现这种情况
![](https://img-blog.csdnimg.cn/img_convert/b4199a37f94a0dd4bdaa21955363da43.png)
之所以会出现上图这些问题是因为y轴yAxis对象中splitNumber默认值是5,所以如果y轴中的最大值小于5就会出现上面这种情况
解决办法如下:
splitNumber要能被min-max的数整除
yAxis: {
gridType: "dash",
dashLength: 1,
padding: 10,
splitNumber: 3,//这个值很重要,不准确会的话y轴上的值会出现小数点
data: [{
max: 100,//max值根据需求中会出现的最大值进行设置
min: 1,
}]
},
如下示例:1-100(不包括1),是99个数,99/3=33,那么y轴排列是1,34,67,100,能够被整除,显示正常
![](https://img-blog.csdnimg.cn/img_convert/f1b377a87fc238253a46f1cf0146850d.png)
问题解决!
完成代码
<template>
<view class="charts-box">
<qiun-data-charts type="line" :opts="opts" :chartData="chartData" :ontouch="true" />
</view>
</template>
<script>
export default {
data() {
return {
chartData: {},
//这里的 opts 是图表类型 type="line" 的全部配置参数,您可以将此配置复制到 config-ucharts.js 文件中下标为 ['line'] 的节点中来覆盖全局默认参数。实际应用过程中 opts 只需传入与全局默认参数中不一致的【某一个属性】即可实现同类型的图表显示不同的样式,达到页面简洁的需求。
opts: {
color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4",
"#ea7ccc"
],
padding: [15, 10, 0, 15],
enableScroll: true,
legend: {},
xAxis: {
disableGrid: true,
scrollShow: true,
itemCount: 4,
tofix: 0,
},
yAxis: {
gridType: "dash",
dashLength: 2,
splitNumber: 3,
data: [{
max: 100,
min: 1
}]
},
extra: {
line: {
type: "straight",
width: 2,
activeType: "hollow"
}
}
}
};
},
onReady() {
this.getServerData();
},
methods: {
getServerData() {
//模拟从服务器获取数据时的延时
setTimeout(() => {
//模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
let res = {
categories: [1, 2], //期数
series: [{
name: "成交量A",
data: [3, 4]
}]
};
this.chartData = JSON.parse(JSON.stringify(res));
}, 500);
},
}
};
</script>
<style scoped>
/* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */
.charts-box {
width: 100%;
height: 300px;
}
</style>