This is an automated email from the ASF dual-hosted git repository.
ovilia pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git
The following commit(s) were added to refs/heads/master by this push:
new fbb47dd fix: bar chart abnormal when dataZoom filterMode: 'empty'.
Fix #9882
fbb47dd is described below
commit fbb47dd8058ca03cc2e3fe3e0e42c1ebf51fa155
Author: sushuang
AuthorDate: Thu Mar 28 00:45:24 2019 +0800
fix: bar chart abnormal when dataZoom filterMode: 'empty'. Fix #9882
---
src/component/dataZoom/AxisProxy.js | 2 +-
src/data/List.js| 11 ++---
src/layout/barGrid.js | 3 +-
test/bar-others.html| 83 +
4 files changed, 90 insertions(+), 9 deletions(-)
diff --git a/src/component/dataZoom/AxisProxy.js
b/src/component/dataZoom/AxisProxy.js
index 11ed79e..3b00305 100644
--- a/src/component/dataZoom/AxisProxy.js
+++ b/src/component/dataZoom/AxisProxy.js
@@ -390,7 +390,7 @@ AxisProxy.prototype = {
each(dataDims, function (dim) {
if (filterMode === 'empty') {
seriesModel.setData(
-seriesData.map(dim, function (value) {
+seriesData = seriesData.map(dim, function (value) {
return !isInWindow(value) ? NaN : value;
})
);
diff --git a/src/data/List.js b/src/data/List.js
index 47faff6..7819050 100644
--- a/src/data/List.js
+++ b/src/data/List.js
@@ -859,14 +859,11 @@ listProto.getValues = function (dimensions, idx /*, stack
*/) {
*/
listProto.hasValue = function (idx) {
var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;
-var dimensionInfos = this._dimensionInfos;
for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {
-if (
-// Ordinal type can be string or number
-dimensionInfos[dataDimsOnCoord[i]].type !== 'ordinal'
-// FIXME check ordinal when using index?
-&& isNaN(this.get(dataDimsOnCoord[i], idx))
-) {
+// Ordinal type originally can be string or number.
+// But when an ordinal type is used on coord, it can
+// not be string but only number. So we can also use isNaN.
+if (isNaN(this.get(dataDimsOnCoord[i], idx))) {
return false;
}
}
diff --git a/src/layout/barGrid.js b/src/layout/barGrid.js
index 127a323..a2d7976 100644
--- a/src/layout/barGrid.js
+++ b/src/layout/barGrid.js
@@ -295,7 +295,8 @@ export function layout(seriesType, ecModel) {
var value = data.get(valueDim, idx);
var baseValue = data.get(baseDim, idx);
-if (isNaN(value)) {
+// If dataZoom in filteMode: 'empty', the baseValue can be set as
NaN in "axisProxy".
+if (isNaN(value) || isNaN(baseValue)) {
continue;
}
diff --git a/test/bar-others.html b/test/bar-others.html
new file mode 100644
index 000..eefacbf
--- /dev/null
+++ b/test/bar-others.html
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var option;
+
+require([
+'echarts'/*, 'map/js/china' */
+], function (echarts) {
+
+// $.getJSON('./data/nutrients.json', function (data) {
+// });
+
+var option = {
+xAxis: {
+data: ['a', 'b', 'c', 'd', 'e']
+},
+yAxis: {},
+dataZoom: {
+filterMode: 'empty',
+start: 90,
+end: 90
+},
+series: {
+type: 'bar',
+data: [
+55,
+13,
+187,
+{value: 123, itemStyle: {color: 'blue'}},
+{value: 88, itemStyle: {color: 'yellow'}}
+]
+}
+}
+
+var chart = testHelper.create(echarts, 'main0', {
+title: 'extreme data zoom range with filterMode: "empty":
Should only **show one bar**',
+option: option
+});
+});
+
+
+
+
\ No newline at end of file
-
To unsubscribe, e-mail: commits-unsubscr...@echarts.apache.org
For additional commands, e-mail: commits-h...@echarts.apache.org