antvis/G2

【v5】Tooltip 无法展示 falsy 值 #4891

Deathsteps posted onGitHub

问题描述

tooltip 无法展示 falsy 值(null, undefined, 0)都不显示

<img width="942" alt="image" src="https://user-images.githubusercontent.com/1549118/232394128-09cc8a15-5af2-48c1-8501-3621d4281c29.png"> <img width="938" alt="image" src="https://user-images.githubusercontent.com/1549118/232394173-a4d53b0b-be8d-464d-b3fe-64828bc23b1d.png">

期望结果

至少应该显示 0 值,null, undefined 在数据表中也是有意义的,也应该显示。

如何重现

G2 V5 版本,官方示例改了一下数据

import { Chart } from '@antv/g2';

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


const data = [
  {
    city: '杭州',
    value: 400,
  },
  {
    city: '上海',
    value: 200,
  },
  {
    city: '北京',
    value: 100,
  },
  {
    city: '河北',
    value: 0,
  },
  {
    city: '苏州',
    value: 500,
  },
  {
    city: '海南',
    value: 200,
  },
]

chart
  .line()
  .data(data)
  .encode('x', 'city')
  .encode('y', 'value')
  .axis('y');

chart.render();
chart.interaction('tooltip', true)

额外信息

  • G2 5.0.3

目前确实过滤了 falsy 的值,的确是不合理的,更好的做法是让用户能显示地指定什么是 falsy 的值。

// 只有 d.value 大于 10 的时候才展示
chart.interaction("tooltip", { defined: d => d.value > 10 }); 
posted by pearmini about 2 years ago

目前确实过滤了 falsy 的值,的确是不合理的,更好的做法是让用户能显示地指定什么是 falsy 的值。

// 只有 d.value 大于 10 的时候才展示
chart.interaction("tooltip", { defined: d => d.value > 10 }); 

个人观点,从 tooltip 功能的角度讲,如实显示就行了,如果有定制需求,要么用值函数,要么就直接自定义 render。tooltip 本身配置项简单点更好维护。

posted by Deathsteps about 2 years ago

Fund this Issue

$0.00
Funded

Pull requests