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
下一篇: 网易严选小程序学习笔记 3