亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

canvas復雜折線圖應用,想用h5+js畫出下圖所示的折線圖效果,求實現方案

canvas復雜折線圖應用,想用h5+js畫出下圖所示的折線圖效果,求實現方案

吃雞游戲 2018-09-12 13:29:40
原來的效果圖是正態分布的,效果如下:現在有新需求,曲線里面的背景色有兩種,外面也是,曲線本身也有兩種顏色,這個是要求的效果:原來的是通過chart.js制作出來的,但對新需求來說明顯滿足不了了,求新插件推薦,如果光靠調用插件的api方法無法實現,請大神們順帶提供下附加的解決方案,謝謝!!!
查看完整描述

1 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

這個問題解決有一段時間了,差點忘記還沒有提供答案...
這個是通過簡單修改chart.js源碼實現的。
先看改動的核心代碼:
Chart.Scale = Chart.Element.extend({
draw : function(easingDecimal,scaleType,boundaryXper){

        var me = this,
            ctx = this.ctx,
            yLabelGap = (this.endPoint - this.startPoint) / this.steps,
            xStart = Math.round(this.xScalePaddingLeft);        // wmq
            var xEnd = Math.round(this.xScalePaddingRight),
                yGap = this.endPoint - this.startPoint,
                xGap = this.width - xStart - xEnd;        if (this.display){            //wmq
            if(scaleType == 'preProfit'){
                ctx.fillStyle = 'rgba(0,255,0,0.2)';
                ctx.fillRect(xStart,this.startPoint,xGap*boundaryXper,yGap);
                ctx.fillStyle = 'rgba(255,0,0,0.2)';
                ctx.fillRect(xGap*boundaryXper+xStart,this.startPoint,xGap*(1-boundaryXper),yGap);
            }

......
scaleType,boundaryXper是新增的參數,在調用畫圖方法的options對象里面新增并傳進來,一個是畫布類型scaleType,此處是因為項目中多處使用了chart.js畫圖,故需要一個參數做區分,boundaryXper是當坐標值為0時,對應的畫圖寬度百分比(此寬度百分比就是需要畫的綠底色矩形的寬度占可畫面積橫向寬度的百分比,該值的取得與接口數據和正態分布數學算法有關,不做詳述),至于其他參數的含義,看過chart.js的源碼后自然明白是什么意思。


查看完整回答
反對 回復 2018-10-17
  • 1 回答
  • 0 關注
  • 1905 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號