reactjs - 如何在 react-chartjs-2 中设置下限和上限?
问题描述
该代码显示了当周数据库中一天的销售数量的条形图。我面临的问题是,下限和上限分别设置为每天的最低销售额和最高销售额。有没有办法将下限设为 0,上限设为最大数据 + 4?
反应式
import React, {useEffect,useState} from 'react'
import {Bar} from 'react-chartjs-2';
import moment from "moment";
import Axios from "axios";
export default function Chart() {
const [chartvalues,setchartvalues]=useState([])
var day1,day2,day3,day4,day5,day6,day7,dispday1,dispday7
const today = moment();
day1 =moment().day(0).format("dddd").toString();
day2 = moment().day(1).format("dddd").toString();
day3 = moment().day(2).format("dddd").toString();
day4 = moment().day(3).format("dddd").toString();
day5 = moment().day(4).format("dddd").toString();
day6 = moment().day(5).format("dddd").toString();
day7 = moment().day(6).format("dddd").toString();
dispday1 = today.startOf('week').format("DD-MM-YYYY").toString();
dispday7 = today.endOf('week').format("DD-MM-YYYY").toString();
var disp1day1 = moment().day(0).format("YYYY-MM-DD").toString();
var dispday2 = moment().day(1).format("YYYY-MM-DD").toString();
var dispday3 = moment().day(2).format("YYYY-MM-DD").toString();
var dispday4 = moment().day(3).format("YYYY-MM-DD").toString();
var dispday5 = moment().day(4).format("YYYY-MM-DD").toString();
var dispday6 = moment().day(5).format("YYYY-MM-DD").toString();
var disp1day7 = moment().day(6).format("YYYY-MM-DD").toString();
useEffect(() => {
Axios.post('http://localhost:3001/getdate', {
day1 : disp1day1,
day2 : dispday2,
day3 : dispday3,
day4 : dispday4,
day5 : dispday5,
day6 : dispday6,
day7 : disp1day7,
}).then(() => {
console.log("dates sent!")
Axios.get('http://localhost:3001/getchartdata').then((response) => {
setchartvalues(response.data)
console.log("chartvalues",response.data)
})
});
})
const chartData ={labels: [day1,day2 ,day3 ,day4 ,day5 ,day6 ,day7 ],
datasets: [
{
label: "Daily Sales",
data:
chartvalues.map((number)=>{
return number.NoIt
},)
,
backgroundColor: [
'rgba(255, 99, 132, 0.6)',
'rgba(54, 162, 235, 0.6)',
'rgba(255, 206, 86, 0.6)',
'rgba(75, 192, 192, 0.6)',
'rgba(153, 102, 255, 0.6)',
'rgba(255, 159, 64, 0.6)',
'rgba(255, 100, 64, 0.6)',
]
}
]
}
return (
<div>
<h1>Sales from {dispday1} to {dispday7} </h1>
<Bar
data={chartData}
options={{
}}
/>
</div>
)
}
谢谢您的帮助!
解决方案
您可以使用该suggestedMax
属性,在示例中我将 stepSize 设置为 1,如果您不这样做,它会将其舍入到下一个可用的 stepsize 以保持比例缩放的完整。
要从零开始,您可以将beginAtZero
刻度配置中的道具设置为 true
const data = [12, 19, 3, 5, 2, 3];
const maxDataEntry = Math.max(...data);
var options = {
type: 'line',
data: {
labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
datasets: [{
label: '# of Votes',
data,
borderWidth: 1
}]
},
options: {
scales: {
yAxes: [{
ticks: {
reverse: false,
suggestedMax: maxDataEntry + 4,
stepSize: 1,
beginAtZero: true
}
}]
}
}
}
var ctx = document.getElementById('chartJSContainer').getContext('2d');
new Chart(ctx, options);
<body>
<canvas id="chartJSContainer" width="600" height="400"></canvas>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.4/Chart.js" integrity="sha512-hZf9Qhp3rlDJBvAKvmiG+goaaKRZA6LKUO35oK6EsM0/kjPK32Yw7URqrq3Q+Nvbbt8Usss+IekL7CRn83dYmw==" crossorigin="anonymous"></script>
</body>
推荐阅读
- python - 是否有 Python 库可以根据 Col A 对 Col B 的值进行分组并在一行中显示组的所有值?
- ios - 数组的俱乐部值
- python - Tkinter create_image() 保留 PNG 透明度,但 Button(image) 不
- android - 无法确定标签“的类型”
我正在开发一个涉及 Google Maps 的小型 Android 应用程序(通过选择 Google Maps 活动模板使用 Android Studio 创建)。
它在我的测试手机上运行良好,但是当我构建一个签名的 APK 并将其安装在另一部手机上时,地图是空白的。
经过一些谷歌
- java - java 模块系统 - 为什么我们需要在 -add-modules 中显式指定默认模块
- ios - 在另一个函数中调用函数内部的函数
- html - 如何使此按钮居中
- dialog - 在阅读之前未设置 global.game_width
- java - 无法使用 EAP-7.2.0 和 JSF 读取 message.properties 文件
- php - 即使密码错误也能登录