antvis/G2

动画 scaleInY 在 polar 下不符合预期 #4461

hustcc posted onGitHub

AntV Open Source Contribution Plan(可选)

  • 我同意将这个 Issue 参与 OSCP 计划

Issue 类型

中级任务

任务介绍

动画 scaleInY 在 polar 下不符合预期,scaleInY 没有考虑极坐标的情况,目前还是 y 方向 scale 而不是径向 scale 生长。期望 y 方向生长。

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

const chart = new Chart({
  container: 'container',
  width: 800,
  height: 800,
});

const colors = [
  '#98abc5',
  '#8a89a6',
  '#7b6888',
  '#6b486b',
  '#a05d56',
  '#d0743c',
  '#ff8c00',
];

chart.coordinate({ type: 'polar', innerRadius: 0.4 });

chart
  .interval()
  .data({
    type: 'fetch',
    value:
      'https://gw.alipayobjects.com/os/bmw-prod/d582a447-2057-4a74-97ed-1d73a5459ea4.csv',
    transform: [
      {
        type: 'fold',
        fields: [
          'Under 5 Years',
          '5 to 13 Years',
          '14 to 17 Years',
          '18 to 24 Years',
          '25 to 44 Years',
          '45 to 64 Years',
          '65 Years and Over',
        ],
        key: 'Age',
        value: 'Population',
      },
    ],
  })
  .transform({ type: 'stackY' })
  .encode('x', 'State')
  .encode('y', 'Population')
  .encode('color', 'Age')
  .scale('color', { range: colors })
  .legend('color', { position: 'center', display: 'grid', gridCol: 1 })
  .scale('y', { type: 'sqrt' })
  .axis('y', {
    labelFormatter: '~s',
    tickFilter: (_, i) => i !== 0,
    direction: 'center',
  })
  .axis('x', { position: 'inner' })
  .animate('enter', {
    type: 'scaleInY',
    duration: 2000,
  });

chart.render();

参考说明

scaleInY 动画考虑 polar 坐标系,计算合适的 scale(x, y) 中的 x 和 y。


看上去应该是 scaleInY 没有考虑极坐标的情况,目前还是 y 方向 scale 而不是径向 scale。

posted by pearmini over 2 years ago

【Runtus】认领

posted by Runtus over 1 year ago

Fund this Issue

$0.00
Funded

Pull requests