You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@echarts.apache.org by wa...@apache.org on 2025/01/18 07:40:46 UTC
(echarts) 01/01: fix(heatmap): fix labels that are not in calendar range are unexpectedly displayed (resolves #20690)
This is an automated email from the ASF dual-hosted git repository.
wangzx pushed a commit to branch fix/heatmap-label
in repository https://gitbox.apache.org/repos/asf/echarts.git
commit 2872e5c4a7a3d5932123c07f10abe9ca0be83aea
Author: plainheart <yh...@all-my-life.cn>
AuthorDate: Sat Jan 18 15:40:20 2025 +0800
fix(heatmap): fix labels that are not in calendar range are unexpectedly displayed (resolves #20690)
---
src/chart/heatmap/HeatmapView.ts | 8 +++-
test/calendar-heatmap2.html | 81 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 88 insertions(+), 1 deletion(-)
diff --git a/src/chart/heatmap/HeatmapView.ts b/src/chart/heatmap/HeatmapView.ts
index d0de889ba..235d757ab 100644
--- a/src/chart/heatmap/HeatmapView.ts
+++ b/src/chart/heatmap/HeatmapView.ts
@@ -266,9 +266,15 @@ class HeatmapView extends ChartView {
continue;
}
+ const contentShape = coordSys.dataToRect([data.get(dataDims[0], idx)]).contentShape;
+ // Ignore data that are not in range
+ if (isNaN(contentShape.x) || isNaN(contentShape.y)) {
+ continue;
+ }
+
rect = new graphic.Rect({
z2: 1,
- shape: coordSys.dataToRect([data.get(dataDims[0], idx)]).contentShape,
+ shape: contentShape,
style
});
}
diff --git a/test/calendar-heatmap2.html b/test/calendar-heatmap2.html
new file mode 100644
index 000000000..f04c145ba
--- /dev/null
+++ b/test/calendar-heatmap2.html
@@ -0,0 +1,81 @@
+
+<!--
+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">
+ <title>calendar</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <link rel="stylesheet" href="lib/reset.css">
+ <script src="lib/simpleRequire.js"></script>
+ <script src="lib/config.js"></script>
+ <script src="lib/testHelper.js"></script>
+ <script src="lib/jquery.min.js"></script>
+ </head>
+ <body>
+ <div id="main0"></div>
+
+ <script>
+ require(['echarts'], function (echarts) {
+ var option = {
+ visualMap: {
+ show: false,
+ min: 0,
+ max: 10000
+ },
+ calendar: {
+ range: '2016-01'
+ },
+ series: {
+ type: 'heatmap',
+ coordinateSystem: 'calendar',
+ data: [
+ ['2016-01-05', 500],
+ ['2016-01-16', 100],
+ ['2016-01-20', 670],
+ ['2016-01-27', 300],
+ ['2016-02-01', 800],
+ ],
+ label: {
+ show: true,
+ verticalAlign: 'top',
+ align: 'left',
+ formatter(params) {
+ if (!params.value[0].startsWith('2016-01')) {
+ return 'UNEXPECTED LABELS!!!'
+ }
+ return ''
+ },
+ color: 'red',
+ fontWeight: 'bold',
+ fontSize: 20
+ }
+ }
+ };
+ var chart = testHelper.create(echarts, 'main0', {
+ title: [
+ `Labels that are not in calendar range **SHOULDN'T** display at the top left corner`
+ ],
+ option: option
+ });
+ });
+ </script>
+ </body>
+</html>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org