uni-app ucharts 如何让Y轴指向下方 倒挂图如何实现

研究了好久,发现ucharts的资料比较少,目前还不支持倒挂图的形式,于是修改了源码,在绘制面板的过程中进行旋转。

主要的思想来源就是进行内容的旋转以及翻转

中心思想,也是全部的代码,不可缺少,都需要写


<canvas style="transform: scale(1,-1);" canvas-id="canvasColumn" id="canvasColumn2" class="charts" ></canvas>
 这段打匹配,必须写,将图表倒挂,下面的代码是配合倒挂,旋转对应的文字内容            


context.save();//保存之前的动作行为

context.scale(1, -1); //此处可根据自己的需要调整,我是垂直翻转,因为是倒挂图

context.fillText(值(各种值,legend  title 数据点 XY轴的内容), X坐标(放正常的X),Y坐标-注意:因为我是垂直翻转,所以改变而就是Y  要写成 -Y 其中Y是正常的坐标);----最后可能有一些误差  基本在0-10左右  根据实际情况调整,调整Y就可以
 context.restore();//回归正轨  必须写  否则会影响后续代码


下面粘贴一部分的源码,留给大家举一反三,可以的,是u-charts.js的内容 搜索一下就可以

function drawPointText(points, series, config, context) { //这只是一个方法 里面还有好多 根据需要自行修改 灵魂都是一样的
    // 绘制数据文案
    var data = series.data;
    points.forEach(function(item, index) {
        if (item !== null) {
            //var formatVal = series.format ? series.format(data[index]) : data[index];
            context.beginPath();
            context.setFontSize(series.textSize || config.fontSize);
            context.setFillStyle(series.textColor || '#666666');
            var value = data[index]
            if (typeof data[index] === 'object' && data[index] !== null) {
                if (data[index].constructor == Array) {
                    value = data[index][1];
                } else {
                    value = data[index].value
                }
            }
            var formatVal = series.format ? series.format(value) : value;
            
            context.save();
            context.scale(1, -1);
            context.fillText(String(formatVal), item.x - measureText(formatVal, series.textSize || config.fontSize) / 2-2, -1*(item.y -
                4) + 9);
            context.restore();  旋转部分

            
            // context.fillText(String(formatVal), item.x - measureText(formatVal, series.textSize || config.fontSize) / 2, item.y -
            //     4);     原来的代码,自行比对 X Y 哈

            context.closePath();
            context.stroke();
        }
    });

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值