记录一下uniapp使用Ucharts遇到的问题,例如数据重复

因为项目中x轴只需要一个类目,所以x轴和y轴会出现只有一条数据的情况,那么按照ucharts的示例就会出现这种问题,很不美观

或是x轴和y轴1条以上5条以下的数据,并且里面的值都小于5,又会出现这种情况

之所以会出现上图这些问题是因为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,能够被整除,显示正常

问题解决!

完成代码

<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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值