antvis/G2

overflowHide 对于标签在图形上放置不下的时候,随机隐藏标签。 #6199

Calmio-Y posted onGitHub

问题描述

/**

const chart = new Chart({ container: 'container', autoFit: true, });

chart.coordinate({ transform: [{ type: 'transpose' }] });

chart .interval() .data({ type: 'fetch', value: 'https://gw.alipayobjects.com/os/bmw-prod/fb9db6b7-23a5-4c23-bbef-c54a55fee580.csv', format: 'csv', }) .transform({ type: 'sortX', reverse: true }) .encode('x', 'letter') .encode('y', 'frequency') .axis('y', { labelFormatter: '.0%' }) .label({ text: 'frequency', formatter: '.1%', textAlign: (d) => (+d.frequency > 0.008 ? 'right' : 'start'), fill: (d) => (+d.frequency > 0.008 ? '#fff' : '#000'), dx: (d) => (+d.frequency > 0.008 ? -5 : 5), transform: [ { "type": "overflowHide" } ] });

chart.render();

重现链接

No response

重现步骤

No response

预期行为

正常显示或者超出隐藏

平台

  • 操作系统: [macOS, Windows, Linux, React Native ...]
  • 网页浏览器: [Google Chrome, Safari, Firefox]

屏幕截图或视频(可选)

image

<img width="780" alt="企业微信截图_17138633559" src="https://github.com/antvis/G2/assets/30626950/3c9fc3fc-d54f-45d6-b727-91ca311defde">

补充说明(可选)

No response


期望是什么?

我估计是条形的高度刚好对有一些字符不够高,所以 hide 了。

posted by hustcc about 1 year ago

期望:以上图片为例,对于同等宽的柱子,同等长度的label显隐一致

posted by Calmio-Y about 1 year ago

期望是什么?

我估计是条形的高度刚好对有一些字符不够高,所以 hide 了。

我认领这个bug,看了下,源码是直接将label的坐标范围和柱子的坐标范围做比较,没做精度管理,label的坐标精度太小,已经是在在肉眼不可感知的像素(即0.00x甚至更小的像素)导致了label溢出,所以就被隐去了。

posted by Runtus 12 months ago

<img width="769" alt="企业微信截图_17140962103676" src="https://github.com/antvis/G2/assets/30626950/5ee5d1f8-00d2-4083-89dd-907a5533c12a"> 面积图的overflowHide会有这个问题

posted by Calmio-Y 12 months ago

@Calmio-Y 看 @Runtus PR 调式的结果来看,应该是符合预期的,正好触发临界值,某些 label 字符的大小刚好超过的条形的区域。这个更字体有一些关系。

posted by hustcc 12 months ago

<img alt="企业微信截图_17140962103676" width="769" src="https://private-user-images.githubusercontent.com/30626950/325853087-5ee5d1f8-00d2-4083-89dd-907a5533c12a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTUxMzY3OTYsIm5iZiI6MTcxNTEzNjQ5NiwicGF0aCI6Ii8zMDYyNjk1MC8zMjU4NTMwODctNWVlNWQxZjgtMDBkMi00MDgzLTg5ZGQtOTA3YTU1MzNjMTJhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA1MDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNTA4VDAyNDgxNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRjMGQxMTJjM2RkZGQ5OTA5NjlkMmRmZDVkOWYwMTllY2E2ZDBmYWQ4YWRiYzVkNTg5ODVkYTBmMzUxZDk3MjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.TX6yDBYTUYt8PD4cbxlkRxsXMPc-qerXcmLDD_7bQ9M"> 面积图的overflowHide会有这个问题

@Calmio-Y 这个问题,在 https://github.com/antvis/G2/pull/6209 中已经被 @Runtus 解决,5.1.20 版本中有效。

posted by hustcc 12 months ago

ok

posted by Calmio-Y 12 months ago

Fund this Issue

$0.00
Funded

Pull requests