javascript - 无法在 chart.js 上显示 2 个图形
问题描述
有人可以帮我在chart.js上显示2个图表吗?我正在本地读取 JSON 文件,我想显示 2 个图表。但不幸的是,我只能看到一张图……这是 HTML 代码:
<body>
<canvas id="graph1" height="500" width="700" />
<canvas id="graph2" height="300" width="500" />
<!-- <canvas id="graph3" height="500" width="700" /> -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.2.1/Chart.bundle.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</body>
这是JS代码:
<script>
$.getJSON("http://localhost/json_for_graph.json", function (result) {
graph1 = result.dict_for_graph1
graph2 = result.dict_for_graph2
var graph1_unique_id = []
var graph1unknown_list = []
var graph1_relevant_list = []
var graph2_all_times = []
var graph2_id_appear_one_time = []
for (var i = 0; i < graph1.value_for_unique_id_list.dict_X_and_Y_values_for_unique_id_list.length; i++) { graph1_unique_id.push(graph1.value_for_unique_id_list.dict_X_and_Y_values_for_unique_id_list[i]) graph1unknown_list.push(graph1.value_for_all_unknown_list.dict_X_and_Y_values_for_unknown_list[i]) graph1_relevant_list.push(graph1.value_for_all_relevant_list.dict_X_and_Y_values_for_relevant_list[i])
}
for (var i = 0; i < graph2.all_times.length; i++) {
graph2_all_times.push(graph2.all_times)
graph2_id_appear_one_time.push(graph2.id_appear_one_time)
}
var canvas1 = document.getElementById("graph1");
var graphParams1 = {
type: "scatter",
data: {
datasets: [{
label: "Time VS all entities",
data: graph1_unique_id,
borderColor: "red",
backgroundColor: "transparent",
showLine: false
},
{
label: "Time VS unknown entities",
data: graph1unknown_list,
borderColor: "green",
backgroundColor: "transparent",
showLine: false
}, {
label: "Time VS relevant entities",
data: graph1_relevant_list,
borderColor: "blue",
backgroundColor: "transparent",
showLine: false
}],
},
options: {
maintainAspectRatio: false,
responsive: false,
scales: {
xAxes: [{
type: "time",
distribution: "series",
}],
}
}
}
var canvas2 = document.getElementById("graph2");
var graphParams2 = {
type: "scatter",
data: {
datasets: [{
label: "Time VS RSSI of single reception",
data: result.dict_for_graph2.id_appear_one_time,
borderColor: "red",
backgroundColor: "transparent",
showLine: false
},
],
},
options: {
maintainAspectRatio: false,
responsive: false,
scales: {
xAxes: [{
type: "time",
distribution: "series",
}],
}
}
}
ctx1 = new Chart(canvas1, graphParams1);
ctx2 = new Chart(canvas2, graphParams2);
});
</script>
</html>
我只能看到第一张图表。我想看看这两张图表。有人可以帮帮我吗?谢谢你!!
解决方案
与<img>
元素不同,<canvas>
元素需要单独的结束标签(</canvas>).
尝试用下面的代码替换代码中的画布元素。
<canvas id="graph1" height="500" width="700"></canvas>
<canvas id="graph2" height="300" width="500"></canvas>
推荐阅读
- angular - 带有可点击图像的 ngx-slick-carousel 始终不允许点击事件
- r - R purrr map2 更改列名 - 列名中的间距问题
- php-curl - 当 json 数据通过变量传递时,CURL 没有返回正确的响应
- c# - 在 IIS 上执行进程会使 RAM 快速上升
- windows - 适用于 Office 2016 的 Microsoft Office 文档映像 (MODI)
- postgresql - Azure DevOps CI 中 Azure 服务集成的自动化集成测试
- ios - 如何使用 GET API 请求在 AWS Cloud Search 中执行部分字符串搜索
- java - 未能执行目标 maven-compiler-plugin 3.8.0 - org/codehaus/plexus/compiler/manager/NoSuchCompilerException
- atom-editor - Atom Snippets - 得到保存但未列出且不起作用
- bash - bash: while - 一段时间后停止