Solid Gauge
优质
小牛编辑
133浏览
2023-12-01
我们已经在Highcharts Configuration Syntax一章中看到了用于绘制图表的配置 。
下面给出了Solid Gauge Chart的示例。
配置 (Configurations)
现在让我们看一下所采取的其他配置/步骤。
chart.type
将图表类型配置为基于计量。 将类型设置为“solidguage”。
var chart = {
type: 'solidguage'
};
pane
此类型仅适用于极坐标图和角度计。 此配置对象包含组合的X和Y轴组的常规选项。 每个xAxis或yAxis都可以通过索引引用窗格。
var pane = {
startAngle: -150,
endAngle: 150
};
例子 (Example)
highcharts_guage_solid.htm
<html>
<head>
<title>Highcharts Tutorial</title>
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>
<script src = "https://code.highcharts.com/highcharts.js"></script>
<script src = "https://code.highcharts.com/highcharts-more.js"></script>
<script src = "https://code.highcharts.com/modules/solid-gauge.js"></script>
</head>
<body>
<div style = "width: 600px; height: 400px; margin: 0 auto">
<div id = "container-speed" style = "width: 300px; height: 200px; float: left">
</div>
<div id = "container-rpm" style = "width: 300px; height: 200px; float: left">
</div>
</div>
<script language = "JavaScript">
$(document).ready(function() {
var chart = {
type: 'solidgauge'
};
var title = null;
var pane = {
center: ['50%', '85%'],
size: '140%',
startAngle: -90,
endAngle: 90,
background: {
backgroundColor: (
Highcharts.theme && Highcharts.theme.background2) || '#EEE',
innerRadius: '60%',
outerRadius: '100%',
shape: 'arc'
}
};
var tooltip = {
enabled: false
};
// the value axis
var yAxis = {
stops: [
[0.1, '#55BF3B'], // green
[0.5, '#DDDF0D'], // yellow
[0.9, '#DF5353'] // red
],
lineWidth: 0,
minorTickInterval: null,
tickPixelInterval: 400,
tickWidth: 0,
title: {
y: -70
},
labels: {
y: 16
},
min: 0,
max: 200,
title: {
text: 'Speed'
}
};
var plotOptions = {
solidgauge: {
dataLabels: {
y: 5,
borderWidth: 0,
useHTML: true
}
}
};
var credits = {
enabled: false
};
var series = [{
name: 'Speed',
data: [80],
dataLabels: {
format: '<div style = "text-align:center"><span style = "font-size:25px;color:' +
((Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black') +
'">{y}</span><br/>' +
'<span style = "font-size:12px;color:silver">km/h</span></div>'
},
tooltip: {
valueSuffix: ' km/h'
}
}];
var json = {};
json.chart = chart;
json.title = title;
json.pane = pane;
json.tooltip = tooltip;
json.yAxis = yAxis;
json.credits = credits;
json.series = series;
$('#container-speed').highcharts(json);
// the value axis
yAxis = {
stops: [
[0.1, '#55BF3B'], // green
[0.5, '#DDDF0D'], // yellow
[0.9, '#DF5353'] // red
],
lineWidth: 0,
minorTickInterval: null,
tickPixelInterval: 400,
tickWidth: 0,
title: {
y: -70
},
labels: {
y: 16
},
min: 0,
max: 5,
title: {
text: 'RPM'
}
};
series = [{
name: 'RPM',
data: [1],
dataLabels: {
format: '<div style = "text-align:center"> <span style = "font-size:25px;color:' +
((Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black') +
'">{y:.1f}</span><br/>' +
'<span style = "font-size:12px;color:silver">* 1000/min</span></div>'
},
tooltip: {
valueSuffix: ' revolutions/min'
}
}];
json.yAxis = yAxis;
json.series = series;
$('#container-rpm').highcharts(json);
var chartFunction = function() {
// Speed
var chart = $('#container-speed').highcharts();
var point;
var newVal;
var inc;
if (chart) {
point = chart.series[0].points[0];
inc = Math.round((Math.random() - 0.5) * 100);
newVal = point.y + inc;
if (newVal < 0 || newVal > 200) {
newVal = point.y - inc;
}
point.update(newVal);
}
// RPM
chart = $('#container-rpm').highcharts();
if (chart) {
point = chart.series[0].points[0];
inc = Math.random() - 0.5;
newVal = point.y + inc;
if (newVal < 0 || newVal > 5) {
newVal = point.y - inc;
}
point.update(newVal);
}
};
// Bring life to the dials
setInterval(chartFunction, 2000);
});
</script>
</body>
</html>