import React, { Component } from 'react'; import { ResponsiveContainer, FunnelChart, Funnel, Cell, Tooltip, LabelList } from 'recharts'; import { scaleOrdinal } from 'd3-scale'; import { schemeCategory10 } from 'd3-scale-chromatic'; import * as _ from 'lodash'; import { changeNumberOfData } from './utils'; const colors1 = scaleOrdinal(schemeCategory10).range(); const colors2 = scaleOrdinal(schemeCategory10).range(); const data = [ { value: 100, name: '展现展现展现展现展现展现展现展现展现展现展现展现' }, { value: 80, name: '点击点击点击点击点击点击点击点击点击点击点击点击点击点击' }, { value: 50, name: '访问访问访问访问访问访问访问访问访问访问访问访问访问访问访问' }, { value: 40, name: '咨询咨询咨询咨询咨询咨询咨询咨询咨询咨询咨询咨询咨询咨询咨询' }, { value: 26, name: '订单订单订单订单订单订单订单订单订单订单订单订单订单订单订单订单' }, ]; const data01 = [ { value: 100, name: '展现' }, { value: 80, name: '点击' }, { value: 50, name: '访问' }, { value: 40, name: '咨询' }, { value: 26, name: '订单' }, ]; const data02 = [ { value: 60, name: '展现' }, { value: 50, name: '点击' }, { value: 30, name: '访问' }, { value: 20, name: '咨询' }, { value: [10, 5], name: '订单' }, ]; const data03 = [ { value: 10, name: '展现' }, { value: 24, name: '点击' }, { value: 60, name: '访问' }, { value: 100, name: '咨询' }, { value: 150, name: '订单' }, ]; const initialState = { data }; export default class Demo extends Component { static displayName = 'FunnelChartDemo'; state = initialState; handleChangeData = () => { this.setState(() => _.mapValues(initialState, changeNumberOfData)); }; render() { const { data } = this.state; return (
Simple FunnelChart
Nest FunnelChart
active FunnelChart
reversed FunnelChart