javascript - 谷歌散点图上的数据点与静态多边形
问题描述
我正在创建一个仪表板,它需要在图表上显示传感器的当前温度/湿度,并相对于定义的静态多边形显示它。多边形代表可接受的温度/湿度区域。我不需要显示以前的值,只需要显示当前的温度/湿度点。
什么谷歌图表可以容纳这样的东西?有没有更好的图书馆可以处理这个问题?我可以用散点图显示数据,但我不确定如何处理多边形:
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Humidity', 'Temp'],
[ 51, 68],
]);
var options = {
title: 'Temp Humidity ',
hAxis: {title: 'Relative Humidity', minValue: 45, maxValue: 65},
vAxis: {title: 'Temperature (F)', minValue: 64, maxValue: 80},
legend: 'none'
};
var chart = new google.visualization.ScatterChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div" style="width: 900px; height: 500px;"></div>
解决方案
您可以将ComboChart
, 与多边形的线系列一起使用。
为多边形的 y 轴值添加第三列。
然后为多边形的每个角添加行,
另外一行将多边形连接回第一个角。
用于null
“其他”系列的列值。
var data = google.visualization.arrayToDataTable([
['Humidity', 'Temp', 'poly'],
// scatter point
[51, 68, null],
// polygon
[54, null, 70],
[58, null, 70],
[58, null, 72],
[54, null, 72],
[54, null, 70],
]);
在选项中,设置系列选项如下...
var options = {
title: 'Temp Humidity ',
hAxis: {title: 'Relative Humidity', minValue: 45, maxValue: 65},
vAxis: {title: 'Temperature (F)', minValue: 64, maxValue: 80},
legend: 'none',
seriesType: 'scatter',
series: {
1: {
color: '#000000',
type: 'line'
}
}
};
请参阅以下工作片段...
google.charts.load('current', {
packages: ['corechart']
}).then(function drawChart() {
var data = google.visualization.arrayToDataTable([
['Humidity', 'Temp', 'poly'],
// scatter point
[51, 68, null],
// polygon
[54, null, 70],
[58, null, 70],
[58, null, 72],
[54, null, 72],
[54, null, 70],
]);
var options = {
title: 'Temp Humidity ',
hAxis: {title: 'Relative Humidity', minValue: 45, maxValue: 65},
vAxis: {title: 'Temperature (F)', minValue: 64, maxValue: 80},
legend: 'none',
seriesType: 'scatter',
series: {
1: {
color: '#000000',
type: 'line'
}
}
};
var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
chart.draw(data, options);
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
推荐阅读
- matlab - 设置为动态大小时,Matlab S-Function 崩溃
- python - 让图像多次出现 Pygame
- lisp - Lisp 函数返回一个数字加倍,然后将相同的数字加倍加一
- haskell - 使用 GHC API 编译优化程序
- c# - 将 ui 的子坐标转换为 UI 世界位置
- php - 如何添加自己的评分系统?
- powershell - PowerShell Where-Object 与 Where 方法
- javascript - 谷歌表中的脚本以清除但不删除过滤器
- linux - 编辑 conf 文件并在 dockerfile 中使用 sed 或 awk 更改值?
- scala - Scala函数TypeTag:T在函数中使用类型T