You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@echarts.apache.org by GitBox <gi...@apache.org> on 2020/02/16 10:52:08 UTC

[GitHub] [incubator-echarts] 100pah commented on a change in pull request #12147: Fix: minOpen is true will drop a piece

100pah commented on a change in pull request #12147: Fix: minOpen is true will drop a piece
URL: https://github.com/apache/incubator-echarts/pull/12147#discussion_r379893617
 
 

 ##########
 File path: src/component/visualMap/PiecewiseModel.js
 ##########
 @@ -402,7 +402,7 @@ var resetMethods = {
 
         if (thisOption.minOpen) {
             pieceList.push({
-                index: index++,
+                index: index,
 
 Review comment:
   Also consider
   (1) @pissang mentioned: when the split number is `5`, the final pieces should better be `5`.
   (2) The potential but that the `piece.index` forget to change after `reformIntervals(pieceList)` called.
   
   I think the code to solve this issue could be:
   
   ```js
       splitNumber: function () {
           var thisOption = this.option;
           var pieceList = this._pieceList;
           var precision = Math.min(thisOption.precision, 20);
           var dataExtent = this.getExtent();
           var splitNumber = thisOption.splitNumber;
           splitNumber = Math.max(parseInt(splitNumber, 10), 1);
           thisOption.splitNumber = splitNumber;
   +       var closedIntervalCount = splitNumber - (+thisOption.minOpen) - (+thisOption.maxOpen);
   
   -       var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber;
   +       var splitStep = (dataExtent[1] - dataExtent[0]) / closedIntervalCount;
           // Precision auto-adaption
           while (+splitStep.toFixed(precision) !== splitStep && precision < 5) {
               precision++;
           }
           thisOption.precision = precision;
           splitStep = +splitStep.toFixed(precision);
   
   -       var index = 0;
   
           if (thisOption.minOpen) {
               pieceList.push({
   -               index++,
                   interval: [-Infinity, dataExtent[0]],
                   close: [0, 0]
               });
           }
   
           for (
   -           var curr = dataExtent[0], len = index + splitNumber;
   -           index < len;
   -           curr += splitStep
   +           var index = 0, curr = dataExtent[0];
   +           index < closedIntervalCount;
   +           curr += splitStep, index++
           ) {
               var max = index === splitNumber - 1 ? dataExtent[1] : (curr + splitStep);
   
               pieceList.push({
   -               index: index++,
                   interval: [curr, max],
                   close: [1, 1]
               });
           }
   
           if (thisOption.maxOpen) {
               pieceList.push({
   -               index: index++,
                   interval: [dataExtent[1], Infinity],
                   close: [0, 0]
               });
           }
   
           reformIntervals(pieceList);
   
   -       zrUtil.each(pieceList, function (piece) {
   +       zrUtil.each(pieceList, function (piece, index) {
   +           piece.index = index;
               piece.text = this.formatValueText(piece.interval);
           }, this);
       },
   
   ```

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org