laravel - 我希望折线图在图表 js 中从上午 12:00 开始并在晚上 11:59 结束
问题描述
我希望我的图表从上午 12:00 开始,并且仅在数据可用时绘制点。在我的大多数情况下,数据从早上 6:00 开始。现在我希望图表看起来像这样。
我已经从查询提供的 created_at 生成了标签。因此,标签等同于当前的所有 created_at。我的图表看起来像这样。
我希望我的标签从上午 12:00 开始,但从第一个 created_at 点开始绘制图表。或空值可以替换为 0。
<script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>
<script>
let labels = {!! $labels !!};
Chart.defaults.scale.gridLines.drawOnChartArea = false;
Chart.defaults.global.title.display = true;
Chart.defaults.global.tooltips.intersect = false;
Chart.defaults.global.elements.point.radius = 0;
Chart.defaults.scale.ticks.maxTicksLimit = 21;
Chart.defaults.scale.ticks.maxRotation = 0;
Chart.defaults.scale.ticks.minRotation = 0;
Chart.defaults.global.defaultFontColor = "#bfbfbf";
var outdoor = new Chart(document.getElementById("outdoor").getContext('2d'), {
type: 'line',
showScale: false,
data: {
labels: labels,
datasets: [{
data: {{$activeGraph->pluck('status')}},
label: "Active Status",
borderColor: "#00F",
fill: false,
borderWidth: 1,
}]
},
options: {
title: {
text: 'Outdoor Temperature and Due Point'
},
customLine: {
color: 'black'
},
responsive: true,
maintainAspectRatio: false,
scales: {
xAxes: [{
ticks: {
maxRotation: 0,
minRotation: 0
}
}]
}
},
</script>
我的 laravel 代码
$activeGraph = ActiveGraph::where('device_id', $id)->get();
$labels = $activeGraph->map(function ($model) {
return [$model->created_at->format('M-d') ,$model->created_at->format('h:i A')];
});
return view('devices.chart',compact('labels','activeGraph'))->with('device', $device);
解决方案
推荐阅读
- ios - 无法转换 UTC 时间
- python - 如何在 Python 3.7 中拆分文件并使用与 Table 相同的名称保存
- python - 在 facet_grid() 中使用 ggplot 固定条形大小
- icalendar - 同步 iCalendar 事件,例如 theSkimm
- c# - 根据变量名称更改控件
- json - 如何解析变量中的Json
- java - SpringBoot:如何从返回 ResponseEntity 的微服务下载文件
? - notepad++ - 如何将 XQuery 语法突出显示添加到 NotePad++ (NPP) 7.x?
- apache-kafka - 是否可以使用 MirrorMaker2 复制没有别名前缀的 kafka 主题
- excel - 在excel中查找两列的组合,一列中有一个条件