antvis/G2






The issue has been closed
Circle Packing溢出问题 #3342
Smacricket posted onGitHub
import DataSet from '@antv/data-set';
import { Chart } from '@antv/g2';
let chartData = [
{
name: "方太",
children: [
{
name: "碧桂园",
value: 10
}, {
name: "中国恒大",
value: 20
}, {
name: "万科地产",
value: 30
}, {
name: "融创中国",
value: 24
}, {
name: "xx地产",
value: 24
}, {
name: "cc地产",
value: 24
}, {
name: "yy地产",
value: 24
}, {
name: "zz地产",
value: 24
}
]
}
];
chartData.forEach(data => {
const dv = new DataSet.View().source(data, {
type: 'hierarchy',
});
dv.transform({
type: 'hierarchy.circle-packing',
});
const diameter = Math.min(window.innerWidth, 500);
const chart = new Chart({
container: 'container',
height: diameter,
width: diameter,
padding: 0,
});
chart.axis(false);
chart.legend(false);
chart.tooltip({
showTitle: false,
showMarkers: false,
});
const nodes = dv.getAllNodes().map((node) => ({
hasChildren: !!(node.data.children && node.data.children.length),
name: node.data.name.split(/(?=[A-Z][^A-Z])/g).join('\n'),
value: node.value,
depth: node.depth,
x: node.x,
y: node.y,
r: node.r,
}));
chart.data(nodes);
chart.scale({
x: {
max: 1
},
y: {
max: 1
},
});
chart
.point()
.position('x*y')
.color('hasChildren')
.shape('circle')
.tooltip('name')
.size('r', (r) => r * diameter)
.color('r', 'rgb(252, 253, 191)-rgb(231, 82, 99)-rgb(183, 55, 121)')
.style({
stroke: 'rgb(183, 55, 121)',
})
.label('name', {
offset: 0,
style: {
textBaseline: 'middle',
fill: 'grey',
fontSize: 9,
textAlign: 'center',
},
layout: {
type: 'fixed-overlap',
},
});
chart.interaction('element-active');
chart.render();
});
有搜索到2018年的相关文章,那时候是用chart.source,但是现在已经废弃了,是通过scale来配置,请问怎么解决以上问题