The issue has been closed
丰富 G2 5.0 中 coordinate 的基本操作,当前只有 transpose,还有:
- reflect:镜像
- scale:x、y 方向缩放 reflect = scale(1, -1)
- translate:移动
- rotate:旋转
需要解决 #3305 所遇到的问题。closed #3305

reflect 其实不太需要,改变 scale 的 range 就行了:

/**
* A recreation of this demo: https://observablehq.com/@d3/bar-chart
*/
import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
theme: 'classic',
});
chart
.interval()
.data({
type: 'fetch',
value:
'https://gw.alipayobjects.com/os/bmw-prod/fb9db6b7-23a5-4c23-bbef-c54a55fee580.csv',
})
.encode('x', 'letter')
.encode('y', 'frequency')
.axis('y', { labelFormatter: '.0%' })
.scale('y', { range:[0, 1] }); // 改变 range
chart.render();
posted by pearmini almost 2 years ago
scale,translate 和 rotate 目前看来没有具体的使用场景:并不会组合出更多的图表。相反会带来更好的维护成本:根据不同坐标系绘制不同的组件。
posted by pearmini almost 2 years ago
scale.range 可以解决翻转的问题,但是合理吗?坐标系具备有 缩放、平移、选装的操作不是挺合理吗?
另外 为啥会带来维护成本?
posted by hustcc almost 2 years ago
- scale.range 本身就可以用来翻转,特别是对于没有坐标系机制的图表库。
- 这样坐标系应用于图形很简单,但是应用于组件很麻烦:需要考虑不同坐标系下的绘制结果,会有很多分支判断(特别是坐标系又可以组合,不同的情况又不同)。更好的做法是直接使用 G 的相机能力,类似 G6 的图的旋转、平移等。
posted by pearmini almost 2 years ago
好的, 先处理优先级高的部分,关于 coordinate 的能力我们后续再讨论。
posted by hustcc almost 2 years ago