react-chartjs-2 散点图X轴如何设置固定日期范围并展示散点数据
解决方案
要实现X轴固定两个日期的时间范围,只需要在X轴的配置项中新增min和max属性指定起止时间即可,具体修改如下:
前置依赖确认
首先要确保你已经安装了Chart.js对应的时间适配器,否则时间轴无法正常渲染,推荐使用date-fns适配器,安装命令:npm install chartjs-adapter-date-fns date-fns
安装后在组件顶部导入即可:import 'chartjs-adapter-date-fns'
修改state中的options配置
把原来的xAxes配置修改为如下内容,替换为你自己的起止时间即可:
label: 'Scatter Dataset', data: { datasets: typeof this.props.data === 'object' && this.props.data !== null ? this.props.data.datasets: [] }, options: { scales: { xAxes: [{ display: true, type: 'time', // 新增以下两行配置固定时间范围 min: new Date('2024-05-01 00:00:00'), // 替换为你的起始日期 max: new Date('2024-05-10 23:59:59'), // 替换为你的结束日期 time: { unit: 'hour', displayFormats: { hour: 'DD (HH:mm)' } }, distribution: 'series' }], yAxes: [{ scaleLabel: { display: true, labelString: 'value' } }] }, // 可选配置:禁止用户缩放拖动改变X轴范围(不需要交互修改可以加上) interaction: { mode: 'index', intersect: false, } }
注意事项
min和max支持三种格式传入:Date对象、13位时间戳、符合ISO标准的日期字符串,只要和你散点数据中x字段的时间格式保持一致即可- 超出
min和max范围的散点数据会自动被裁剪不显示,符合你指定范围内展示数据的需求 - 如果你后续需要动态修改时间范围,直接修改state中options里的
min和max值即可,组件会自动重新渲染
内容的提问来源于stack exchange,提问作者Ram sai
相关产品推荐
相关产品推荐

