@linkdesign/screen
Version:
屏组件库,但使用场景又不局限于屏。主要用于BI、大盘和屏
148 lines (122 loc) • 4.11 kB
Markdown
# g2图表 G2Chart
## 使用场景
g2图表
- 内置了些样式
- 标题单独配置,不使用g2属性配置
- 图表canvas的大小会根据容器及标题自动计算
## 预览

## 演示
<!--before-content-->
## 基础用法
```js
import { Chart, config } from '@linkdesign/screen';
const { G2Chart } = Chart;
const { _cssPrefix } = config;
const data = [
{ type: '未知', value: 654, percent: 0.02 },
{ type: '17 岁以下', value: 654, percent: 0.02 },
{ type: '18-24 岁', value: 4400, percent: 0.2 },
{ type: '25-29 岁', value: 5300, percent: 0.24 },
{ type: '30-39 岁', value: 6200, percent: 0.28 },
{ type: '40-49 岁', value: 3300, percent: 0.14 },
{ type: '50 岁以上', value: 1500, percent: 0.06 },
];
class App extends React.Component {
render() {
return (
<div data-theme="dark" className={`${_cssPrefix}main-body`} style={{ backgroundColor: "#1f3b6d" }}>
<G2Chart
title="柱状图"
universalStyle={{
width: 450,
height: 240,
}}
config={{ padding: [50, 20, 50, 20] }}
onInit={(chart) => {
// 添加文本标注
data.forEach((item) => {
chart
.annotation()
.text({
position: [item.type, item.value],
content: item.value,
style: {
textAlign: 'center',
fill: '#d3e2ff',
stroke: null
},
offsetY: -30,
})
.text({
position: [item.type, item.value],
content: (item.percent * 100).toFixed(0) + '%',
style: {
textAlign: 'center',
fill: '#d3e2ff',
stroke: null
},
offsetY: -12,
});
});
}}
options={{
data,
scales: {
value: {
alias: '销售额(万)',
},
type: {
tickLine: {
alignTick: false,
},
}
},
axes: {
value: false,
},
tooltip: {
showMarkers: false,
},
interaction: {
type: 'element-active'
},
geometries: [{
type: 'interval',
position: 'type*value'
}]
}}
/>
</div>
);
}
}
ReactDOM.render(<App />);
```
<!--after-content-->
### API
| 参数名 | 说明 | 必填 | 类型 | 默认值 | 备注 |
| ------------------------- | ------------ | ---- | ---------------------------------------------------- | ------ | ---- |
| className | 类名 | N | String | - | |
| title | 图表标题 | N | ReactNode | - | |
| [universalStyle](#universalStyle) | 通用样式 | N | Object | - | |
| titleOptions | 标题配置 | N | ITitle | {align: 'left', textStyle: {marginBottom: 8}} | |
| config | g2 构造方法的入参 | Y | ChartCfg | - | https://github.com/antvis/G2/blob/master/src/interface.ts#L725 |
| options | g2 options配置 | Y | Options | - | https://github.com/antvis/G2/blob/master/src/interface.ts#L1327 |
#### universalStyle
```typescript
// 通用样式
universalStyle?: {
width?: string | number;
height?: string | number;
position?: {
x: string | number;
y: string | number;
};
rotation?: number;
opacity?: number;
backgroundColor?: string;
};
```
## TODO List
- [ ] ......