Justin-ZS commented on issue #21239: URL: https://github.com/apache/echarts/issues/21239#issuecomment-3283863206
[Workaround](https://echarts.apache.org/examples/zh/editor.html?c=line-marker&reset=1&edit=1&renderer=svg&code=PYBwLglsB2AEC8sDeAoW7YCIDGwA2wATpgFywDaaG1mAxACwDMA7AJwDCAopgDRXXo6rVgCEAHADEAjL34C6EgIIARES1kCMC9mIBsABgBMGzVloSlzemJOa6zQyICsnEbfm1mY9ss7L3NLSK7KyKnMZ8pmZK7Iy6EgFa5srMEqmYcgC6kVoAnooAHhAAzqTIcjRguSAApmWYAG4AhngArnU5miDAxRCQMGQA5Hg1AGZgg52wAL5TACZNYE0AWsDAALZk5KiaVbVDxXgQczWEkxWw6xDQAGot7QDKIE3QZFJT09lymAWFJWXbC6CPZ1Mg4RY1ADmRFyiUE3V6_Wg9QARsAwGANnDYE0isUADJNFE1PBkHZRS5NQiQ65kfRTTQACxqEEhjLAZEY9KBGCO0BqAAkWWyObAuQyBAB3Y5gRlkMTcimwYANU6jAiSoZgQitaDYCHnJXXMCnZqk2CKimM441ADyqsIeCaIDIoxaxRqEvQ0zkszk5LsIPq-pN0MIsK9WARfSgyLBaIxWMjxyGz0INWgE0juJKABUINgANZknnoEbQSGyzmWqLG00tOmR9DXXonMja9qRv1RYCjUYe0Xink5glEkklpXrKk014WpuwZms9nV-d8wXC5dimumFVqjVanV6g3z0ZEKcY05kAAUDR4sAgAEoEAA-WBX8hOO9iTIAOmu2DaE5iivR9YAAflgAADJAwAKMAAB8ABIkAaaZpiQXt-xqBDpkg2AyGg2CEOQ1DcIfedsFaYpMXWO42hqYotneRgeE_XQeDEHhWB4KR6Skd4pEML4jUzetzW3JkbXtU4nRdWA3TwD150IAs5XKJV0EwgcJw09BFxFRtSylGU1IVedqBRJoi0hQhgF1OZ2HwIg DxeYo0wzLMjO9ecfSibtTAWJYti8-RADdNQBIn0Abx9sSiTAIuiu8QpoeKYtMTBAH2HQAlRISpKtBS8ywqi1K7CyhLYFywRAHtgwBBlRy3SaBqur6sEQBwzUAHz1AApXarisKprmswRqMl0zJfSmAN5CDMEQyhGFsUwaMkVRdEaOxEd8yLHSoinalaTnIzKOojY6PaRiKHpMU73oHh2OYLieL4qRhIpctKzUgx5xbG12x1T0eX8zQtOwsh3p5QKmmC5rBB6mheHKyGsGhrREahgqYdRpHEvhzBkYR9GUYq3GCexkKRuof7YCewQPRUhiAR5cbYsmrBLOIArMAzXATjKBmNJ-On4eoKQCcp-rMFhCGBfQQxhYK8nYugJp1lBLBAABUwBcjIAfRNaiAKG0xyZFzAbOObmeUwTEQDKTizZGcYrcjTAVJFe2zYTFayHoCStFwTMmmuQliTwMoOxqUbvkxfBIEtzaJqdyFTnqEc5p90ZrmVkOHZHAAFYA62IGPGeqZXMGgGA6j-h3ikZYBJWDn6w5oFEdSr03GbWPA0QKfnefTbAwD1zRSYwcnzfbzvW7Squa7KBSPQbrQbOda1sABQ2wYHbvNB5uxijswhsHXJoTnz-T3V-3TMDmCAlegXoYFKCXmu30WFaV-pADFVarADAlPqBfNov6hECvgrIOeN5AAC8y65gAWCWytcCZyw0s_C-r9i6f0ALAqgAHzxxpUGBWAgHXBaDgrQkD-TQNqPUOBA96qIKVMg3mqD6jqy1gxMAuswE0FPIQc83NaGiyZpgdUwBFjEMEKQmo5Di5K21AWahulfIaRFrFXerR97K0oPDDRkssD5QJjQKQP5mCFkhIASO1ACEBhFQACAxSFYAAWicPoQAgTqAEQGURsBeL6EEmIGWBMtGSzikVDhWhWD6H0JCQAcf6AAJfKQEU3H8XoLoQw9AfGaL0XlQJaTBAhLCeEwAerGAGPAxQABqQwsSgnoHiUk6W8 MlEaT8X_UqbjMCAC65QALJqABss2AgBPJ0AOV-zBAAkcm4wwhgnD0EMPoFJkN6lY10dorA2TISAFG0wAn-oxPCnEowUhGDJJqWA6ZkMAm_yxgswA2k6AHgLQAMk5SEAK3WZTMnuP0AqBUkzmr7P6o08pWBmAOPWHgcJgBneUAJRKgAiv0ypYwA8Z6ABNYwAeOmAAPnVxnypBMDiBM3Zvj7kDVqk0yqtj2mAD83QA9kEmMANXaJzAAjeYADjkhn0CcMwAwLz6pvNFoNT5A1bGAE15QAg3KAHxXQADYqADWfQAq46AFyvOJhgFT0B2ZDWpSomUX3al1JpgBcWMAE1yoVABvLoAS31ABLboAB5tAC_aoAUYjAAHpoARqC4lSF0PQBwDLdJyt5rM7RmAFl5MKUUtZcSnDbIcbaupGKWX-tsYAJONABL1uEwAORmAFztDZrAxA2pqSTNmkBoC5HYIyKkYBlCLCaBPfquA2jrDjOpJ1qcSRzAfhQe51B6H-MgGAEY9RABleoAecS3GxWkU0SR9QACynBcwACUACS7A21pWZEfU4EgzwiLINAVoeA8CfNiiUbtWcBR13aFW4e9yZWizBpvOZlbD2mBrYe82fQG1gmYdrNhoCt1Kn_hQsE0iVIryXbzIgrJrj5nrcXa9rD2H3opJgFoEAmgVrnQu99D7RjrDABrY4XdDLHpg3MLtYJlC2gAKoiHxNwaDwHRhzEHXMMokHF1AdiuO4-U7uEztgORgjsVCw1HFlgdgNRgDKAaMsUdD6rjQAgGmjNZH50UZQ8Bl4pcliLVnWJpjk8iBgAkBAMtwYIiUbSjUdY4BU34BnmfTT3ogND0lrui-pa8BzFozwguTqr7rFzIydMU8rOrwI5gPkhYbP0fIKZgWfCL4voLCpstPn-52f8XO9YxJCDhYPRJ8jJmPM-yvkieLj8JMMbE8loDnnrjeenRFo9WX0BJYk_5-GgXeb5taIW0LVmMvFuPSXOrsW mv2sluVlDlXIYKOatVuwVDIui0s-WhL2jT1YyIyR-okoTgolGFIbABhFs1ElU4UYNRWCLewA4UYfGJoXrQd_I5KHMCfpnD-y9WBP4_0OzQUD4HRNQaM1gIj6GsAPAHYOgAcgAcQe1oDtn3MDKEHd2oH8IqQeQkHMX7itlaMbe0bQgLx51Uj6Gx5HpXBDUcnUVl74nceYBY2xsWhYbjYAAI6Dqh1gKT6JFixiJwpqmSmGukamvoOR2jBv1SmwcmbXOoyjEMCiMQYhiRS5qIYKw9BWBOBRMwRg2zsCsHp-e39H9qpYM15d79x2dd67Zwzo4z25Ovdx-9tDeDMDfaHQDzXIO7fg8h6b-aMPMxw4R2_S3xPSuo_R06FSVRWco_x3Fwn_uPdk8oRAG4yhGTU814zmTLOY8o93oQZTqm3NTRkEB_rAtzO833VsXrSp-c0HLxQSvAhi9kyyFMRoJRWgtG7c6VeKBphAA) ## Overall Approach 1. **Use multiple Axis objects for rendering**, with each dimension corresponding to one Axis object 2. **Extend axisTick to draw separator lines**, and add two additional empty Axes to enclose the entire Axis Label table (one as base, one as top) 3. **How to merge identical Axis Label Cells?** a. Use `customValues` to hide unnecessary separator lines b. For duplicate Labels, use `customValues` to only render the middle Label (if there's an even number of duplicates, choose the latter one of the middle two) c. For Labels with even number of duplicates, there's an additional step: after rendering is complete, get the length between two ticks, then offset the Label to center it i. This relies on rich text formatting to offset and center ```javascript ((axis = 'yAxis') => { const chart = echarts.getInstanceByDom(document.querySelector('[_echarts_instance_]')); const indexName = axis === 'yAxis' ? 'yAxisIndex' : 'xAxisIndex'; // Use convertToPixel to convert coordinates const pos1 = chart.convertToPixel({[indexName]: 0}, 0); // Convert first position const pos2 = chart.convertToPixel({[indexName]: 0}, 1); // Convert second position return Math.abs(pos2 - pos1); })() ``` 4. **Multi-dimensional means the bottom-level dimension values may have duplicates, and duplicate Axis Labels will be automatically merged by ECharts** a. Transform the dataset by appending special characters + index after multi-dimensional axis dimension values to distinguish them b. The `formatter` in dataLabel/tooltip also needs to distinguish which dimensions are multi-dimensional axes and which are not c. Current approach is to process all dimension values in multi-dimensional axes: XXX => XXX\u001d{Index} d. All places that consume dimension values need to be handled accordingly -- 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. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
