欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Recharts动态设置y轴的最大值最小值

程序员文章站 2022-03-29 20:16:33
问题描述:根据父组件传来的值来动态设置柱状图Y轴的刻度线使用配置属性:domain当 y 轴是数值轴时,通过这个配置可以指定 y 轴刻度函数的定义域。这个配置是一个二元数组,数组中的元素可以是一个数值,“auto”, “dataMin”, “dataMax” 或者类似于"dataMin - 100", “dataMax + 200"这样的字符串。如果任意元素的取值为"auto”,我们会生成可读性高的刻度,并且保证设置的刻度数。默认值:[0, ‘auto’]示例代码:export default c...

问题描述:根据父组件传来的值来动态设置柱状图Y轴的刻度线

使用配置属性:domain
当 y 轴是数值轴时,通过这个配置可以指定 y 轴刻度函数的定义域。这个配置是一个二元数组,数组中的元素可以是一个数值,“auto”, “dataMin”, “dataMax” 或者类似于"dataMin - 100", “dataMax + 200"这样的字符串。如果任意元素的取值为"auto”,我们会生成可读性高的刻度,并且保证设置的刻度数。
默认值:[0, ‘auto’]
示例代码

export default class DetailBar extends React.Component{

  render() {
    const {width,height,data,names} = this.props
    if(data===null){
      return <Loading/>
    }
    if (data.length === 0){
      return <p>无数据</p>
    }
    //拿到data中的最大值,最小值
    const max = Math.max.apply(Math, data.map(function(f:any) {return f.value}))
    const min = Math.min.apply(Math, data.map(function(f:any) {return f.value}))
    const stringArr = Object.keys(data[0])//['time','value','valueY']
    return(
        <BarChart
          width={width}
          height={height}
          data={data}
        >
          <CartesianGrid strokeDasharray={'5 5'} stroke={'#fff2'} />
          <XAxis  />
          <YAxis
            type={'number'}
            domain={[min, max]}//设置domain
          />
          <Bar dataKey='value’  fill='red' />
        </BarChart>
    )
  }
}

这样该柱状图的y轴最小值就是min,最大值max。然后根据这二个值生成可读性高的刻度~

本文地址:https://blog.csdn.net/weixin_44824839/article/details/107367524

相关标签: Recharts react