antvis / G2

📊 The concise and progressive visualization grammar.
https://g2.antv.antgroup.com
MIT License
12.11k stars 1.59k forks source link

【v5】矩形树图 encode.value 使用字段列完整写法渲染异常 #5281

Open Deathsteps opened 1 year ago

Deathsteps commented 1 year ago

AntV Open Source Contribution Plan(可选)

Issue 类型

初级任务

任务介绍

更新矩阵树图文档的描述。大概就是目前 treemap 会把数据绑定到 d.data 上,所以如下去写:

.encode('value', (d) => d.data.size)

而不是:

.encode('value, d => d.size)

也不是:

.encode('value', 'size')

具体如何说明形式不定。

参考说明

只改了图中标出的代码,渲染异常:

image
import { Chart } from '@antv/g2';
import { schemeTableau10 } from 'd3-scale-chromatic';

const chart = new Chart({
  container: 'container',
  theme: 'classic',
  height: 900,
  width: 1100,
});

chart
  .treemap()
  .data({
    type: 'fetch',
    value: 'https://assets.antv.antgroup.com/g2/flare-treemap.json',
  })
  .layout({
    path: (d) => d.name.replace(/\./g, '/'),
    tile: 'treemapBinary',
    paddingInner: 1,
  })
  .encode('value', { type: 'field', value: 'size' })
  .encode('color', (d) => d.parent.data.name.split('.')[1])
  .scale('color', { range: schemeTableau10 })
  .style(
    'labelText',
    (d) =>
      d.data.name
        .split('.')
        .pop()
        .split(/(?=[A-Z][a-z])/g)[0],
  )
  .style('labelFill', '#000')
  .style('labelPosition', 'top-left')
  .style('fillOpacity', 0.5);

chart.render();
pearmini commented 1 year ago

目前 treemap 会把数据绑定到 d.data 上,所以如下去写:

.encode('value', (d) => d.data.size)

但是感觉这样确实不太合理,毕竟改了用户的原始数据,应该可以调整一下?

Deathsteps commented 1 year ago

目前 treemap 会把数据绑定到 d.data 上,所以如下去写:

.encode('value', (d) => d.data.size)

但是感觉这样确实不太合理,毕竟改了用户的原始数据,应该可以调整一下?

我觉得最好维持 API 一致性,这样行为可预测,代码可读性更好。不然就要文档强调说明一下。

pearmini commented 1 year ago

这个地方还是文档强调一下。