我想问问你们中是否有人已经具备自动生成绘图线的经验,以防出现“某些情况”。
我已将highchart连接到SQL Server,从那里我正在读取(电阻)yAxis的数字和xAxis的日期时间。一切工作正常,但是我想每次在阻力值下降至少30%时绘制一条情节图。
因此,主要问题是如何创建条件(在javascript / mssql / php ...中),该条件将当前行值与前一个值进行比较,并在条件变低时自动创建绘图线。
我希望以某种方式有意义。预先感谢您的任何想法。
代码正在工作,我可以在图表中看到所需的值。大约没有错误消息,只是试图找到一种动态绘图线的方法。
预先感谢您的任何建议。
这是用于与SQL Server连接的php函数:
function GetAvg2($connection, $column, $Zone, $Table, $dodatek="")
{
$sql="SELECT concat(datediff(second,{d '1970-01-01'},dateadd(month,datediff(month, 0,date),0)),'000') as datumek, avg($column) as column_set FROM $Table WHERE FileName = '$Zone' and R_TOP1 is not NULL $dodatek group by dateadd(month,datediff(month, 0,date),0)";
$data=array();
$result = sqlsrv_query($connection, $sql);
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC) )
{
$data[]="[".$row['datumek'].",".number_format($row['column_set'],2,'.','')."]";
}
return implode(",",$data);
}
最佳答案
在load
图表事件中,您可以遍历点并动态添加一些绘图线。例如:
chart: {
events: {
load: function() {
var points = this.series[0].points,
value = 4,
closed = true,
plotLines = [];
points.forEach(function(p) {
if (closed ? p.y >= value : p.y <= value) {
closed = !closed;
plotLines.push({
value: p.x,
color: 'red',
width: 2
});
}
});
this.xAxis[0].update({
plotLines: plotLines
});
}
}
}
现场演示: http://jsfiddle.net/BlackLabel/wngo4k1s/
API引用:
https://api.highcharts.com/highcharts/chart.events.load
https://api.highcharts.com/class-reference/Highcharts.Axis#update
关于javascript - 当值低于上一个时,是否有办法在highchart中动态创建绘图线?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57373760/