当前位置:网站首页>bizchart+slider实现分组柱状图
bizchart+slider实现分组柱状图
2022-07-04 20:57:00 【悟初境】
下面使用bizchart实现分组柱状图,并带有滑块选择。效果图如下:

环境
基于bizchart3.x
npm install [email protected]
npm install [email protected]
Chart-Slider组件封装
Chart和Slider是2个组件,为了方便使用,我们封装在一起,用一个函数返回。
import DataSet from '@antv/data-set';
import {
Axis, Chart, Geom, Legend, Tooltip } from "bizcharts";
import Slider from "bizcharts-plugin-slider";
import React, {
Component } from 'react';
function getGroupChartWithSliderComponent(data) {
const ds = new DataSet({
state: {
start: data[0] ? data[0].timestamp : '',
end: data[0] ? data[data.length - 1].timestamp : '$'
}
});
const dv = ds.createView('origin').source(data);
dv.transform({
type: 'filter',
callback(item) {
const r = item.timestamp;
return r >= ds.state.start && r <= ds.state.end;
}
});
class GroupChartWithSlider extends React.Component {
handleTimeSliderChange(e) {
const {
startValue, endValue } = e;
ds.setState('start', startValue);
ds.setState('end', endValue);
}
render() {
const chartScale = {
'timestamp': {
alias: '时间'
},
'count': {
alias: '次数'
}
};
return (
<div>
<Chart height={
200} data={
dv} forceFit padding='auto' scale={
chartScale}>
<Legend position="top-center" />
<Axis name="timestamp" />
<Axis name="count" />
<Tooltip />
<Geom
type="interval"
position="timestamp*count"
color={
["tag"]}
// color={["tag", ["#f5222d", "#ec6740", "#ffa39e"]]}
adjust={
[
{
type: "dodge",
marginRatio: 1 / 32
}]}
style={
{
stroke: "#fff",
lineWidth: 1
}}
/>
</Chart>
<Slider data={
data} padding={
10} xAxis="timestamp" yAxis="count"
scales={
{
// 不显示文本
timestamp: {
formatter: () => ''
}
}}
onChange={
this.handleTimeSliderChange.bind(this)} />
</div>
);
}
}
return GroupChartWithSlider;
}
使用
要生成分组柱状图,只需要同一个X轴的值有多个Y值即可,下面X轴是 timestamp, Y轴是 count.
class MyApp extends Component {
state = {
// 聚合分组柱状图图数据
groupErrorData: [/* { "timestamp": '2022-6-22T11:43', "count": 15, "tag": "鸡蛋", }, { "timestamp": '2022-6-22T11:43', "count": 3, "tag": "香蕉", }, { "timestamp": '2022-6-22T11:43', "count": 19, "tag": "南瓜", }, { "timestamp": '2022-6-22T11:43', "count": 5, "tag": "西南花", }, { "timestamp": '2022-6-22T11:45', "count": 6, "tag": "冬瓜", }, { "timestamp": '2022-6-22T11:45', "count": 20, "tag": "芹菜", }], }; render() { const GroupChartWithSlider = getGroupChartWithSliderComponent(this.state.groupErrorData); return ( <div> <GroupChartWithSlider /> </div > ); } } export default MyApp; Slider效果
Slider可以拖动,显示数据的趋势。
边栏推荐
- [weekly translation go] how to code in go series articles are online!!
- How was MP3 born?
- Maidong Internet won the bid of Beijing life insurance
- Difference between ApplicationContext and beanfactory (MS)
- [leetcode] 17. Letter combination of telephone number
- Compréhension approfondie du symbole [langue C]
- 巅峰不止,继续奋斗!城链科技数字峰会于重庆隆重举行
- IIC (STM32)
- Huawei ENSP simulator enables devices of multiple routers to access each other
- Jerry's ad series MIDI function description [chapter]
猜你喜欢

Can be displayed in CAD but not displayed in print

【C語言】符號的深度理解

Difference between ApplicationContext and beanfactory (MS)

redis03——Redis的网络配置与心跳机制

GTEST from ignorance to proficiency (3) what are test suite and test case

Huawei ENSP simulator configures DHCP for router

WGCNA analysis basic tutorial summary

Daily question-leetcode556-next larger element iii-string-double pointer-next_ permutation

How to remove the black dot in front of the title in word document
![Compréhension approfondie du symbole [langue C]](/img/4b/26cf10baa29eeff08101dcbbb673a2.png)
Compréhension approfondie du symbole [langue C]
随机推荐
Shutter WebView example
Enlightenment of maker thinking in Higher Education
Redis bloom filter
每日一题-LeetCode556-下一个更大元素III-字符串-双指针-next_permutation
ArcGIS 10.2.2 | solution to the failure of ArcGIS license server to start
Operation of adding material schedule in SolidWorks drawing
[weekly translation go] how to code in go series articles are online!!
超详细教程,一文入门Istio架构原理及实战应用
【公开课预告】:视频质量评价基础与实践
【LeetCode】17、电话号码的字母组合
TCP三次握手,四次挥手,你真的了解吗?
刘锦程荣获2022年度中国电商行业创新人物奖
Caduceus从未停止创新,去中心化边缘渲染技术让元宇宙不再遥远
SolidWorks工程图添加材料明细表的操作
如何使用ConcurrentLinkedQueue做一个缓存队列
Golang面试整理 三 简历如何书写
Difference between ApplicationContext and beanfactory (MS)
历史最全混合专家(MOE)模型相关精选论文、系统、应用整理分享
Numpy vstack and column_ stack
Flutter 返回按钮的监听