You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@echarts.apache.org by su...@apache.org on 2020/09/19 11:09:19 UTC

[incubator-echarts] branch next updated: fix: fix parallel smooth update. fix #13302 .

This is an automated email from the ASF dual-hosted git repository.

sushuang pushed a commit to branch next
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git


The following commit(s) were added to refs/heads/next by this push:
     new 2d1c701  fix: fix parallel smooth update. fix #13302 .
2d1c701 is described below

commit 2d1c70115e693be141e55b8e2ab6f1d6a57c2c36
Author: 100pah <su...@gmail.com>
AuthorDate: Sat Sep 19 19:08:20 2020 +0800

    fix: fix parallel smooth update. fix #13302 .
---
 src/chart/parallel/ParallelView.ts |  13 ++--
 test/parallel-feature.html         | 139 +++++++++++++++++++++++++++++++++++++
 2 files changed, 145 insertions(+), 7 deletions(-)

diff --git a/src/chart/parallel/ParallelView.ts b/src/chart/parallel/ParallelView.ts
index 9a00f5e..af3cc25 100644
--- a/src/chart/parallel/ParallelView.ts
+++ b/src/chart/parallel/ParallelView.ts
@@ -27,6 +27,8 @@ import ExtensionAPI from '../../ExtensionAPI';
 import { StageHandlerProgressParams, ParsedValue, Payload } from '../../util/types';
 import Parallel from '../../coord/parallel/Parallel';
 import { OptionAxisType } from '../../coord/axisCommonTypes';
+import { numericToNumber } from '../../util/number';
+import { eqNaN } from 'zrender/src/core/util';
 
 const DEFAULT_SMOOTH = 0.3;
 
@@ -126,9 +128,6 @@ class ParallelView extends ChartView {
         }
     }
 
-    /**
-     * @override
-     */
     remove() {
         this._dataGroup && this._dataGroup.removeAll();
         this._data = null;
@@ -185,10 +184,10 @@ function addEl(data: List, dataGroup: graphic.Group, dataIndex: number, dimensio
 function makeSeriesScope(seriesModel: ParallelSeriesModel): ParallelDrawSeriesScope {
     let smooth = seriesModel.get('smooth', true);
     smooth === true && (smooth = DEFAULT_SMOOTH);
+    smooth = numericToNumber(smooth);
+    eqNaN(smooth) && (smooth = 0);
 
-    return {
-        smooth: smooth != null ? +smooth : DEFAULT_SMOOTH
-    };
+    return { smooth };
 }
 
 function updateElCommon(
@@ -199,7 +198,7 @@ function updateElCommon(
 ) {
     el.useStyle(data.getItemVisual(dataIndex, 'style'));
     el.style.fill = null;
-    seriesScope.smooth && (el.shape.smooth = seriesScope.smooth);
+    el.setShape('smooth', seriesScope.smooth);
 
     const itemModel = data.getItemModel<ParallelSeriesDataItemOption>(dataIndex);
     const emphasisModel = itemModel.getModel('emphasis');
diff --git a/test/parallel-feature.html b/test/parallel-feature.html
new file mode 100644
index 0000000..2cd9cf4
--- /dev/null
+++ b/test/parallel-feature.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+
+<html>
+    <head>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1" />
+        <script src="lib/esl.js"></script>
+        <script src="lib/config.js"></script>
+        <script src="lib/jquery.min.js"></script>
+        <script src="lib/facePrint.js"></script>
+        <script src="lib/testHelper.js"></script>
+        <!-- <script src="ut/lib/canteen.js"></script> -->
+        <link rel="stylesheet" href="lib/reset.css" />
+    </head>
+    <body>
+        <style>
+        </style>
+
+
+
+        <div id="change-smooth"></div>
+
+
+
+
+
+
+
+
+
+        <script>
+        require(['echarts'/*, 'map/js/china' */], function (echarts) {
+            var option;
+
+            function generate_data(n, m, lb, ub) {
+                let s = [];
+                for (let i = 0; i < n; i++) {
+                    let vec = [];
+                    for (let j = 0; j < m; j++) {
+                        vec.push(lb + (Math.random() * (ub - lb)));
+                    }
+                    s.push(vec);
+                }
+                return s;
+            }
+            data = generate_data(20, 3, 0.0, 1.0);
+
+            var option = {
+                parallelAxis: [{
+                    dim: 0,
+                    name: 'f0'
+                    },
+                    {
+                    dim: 1,
+                    name: 'f1'
+                    },
+                    {
+                    dim: 2,
+                    name: 'f2'
+                    }
+                ],
+                legend: {
+                    data: "data",
+                },
+                series: [{
+                    name: "data",
+                    type: "parallel",
+                    data: data,
+                    smooth: 0,
+                    lineStyle: {
+                    color: 'red',
+                    },
+                }, ],
+            };
+
+            function updateSmooth(smoothValue) {
+                chart.setOption({
+                    series: {
+                        smooth: smoothValue
+                    }
+                });
+            }
+
+            var chart = testHelper.create(echarts, 'change-smooth', {
+                title: [
+                    'Test Case Description of main0',
+                    '(Muliple lines and **emphasis** are supported in description)'
+                ],
+                option: option,
+                width: 600,
+                height: 300,
+                buttons: [{
+                    text: 'smooth: true',
+                    onclick: function () {
+                        updateSmooth(true);
+                    }
+                }, {
+                    text: 'smooth: false',
+                    onclick: function () {
+                        updateSmooth(false);
+                    }
+                }, {
+                    text: 'smooth: 0.5',
+                    onclick: function () {
+                        updateSmooth(0.5);
+                    }
+                }, {
+                    text: 'smooth: 0',
+                    onclick: function () {
+                        updateSmooth(0);
+                    }
+                }]
+            });
+        });
+        </script>
+
+
+    </body>
+</html>
+


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