Javascript 如何将另一个变量传递到Highchart基线,该基线应该是动态的
我正在尝试做动态的基本线条图表,我已经做了动态,现在我想用其他列将另一个变量传递给X轴变量,这是我的PHP脚本代码:Javascript 如何将另一个变量传递到Highchart基线,该基线应该是动态的,javascript,php,jquery,highcharts,Javascript,Php,Jquery,Highcharts,我正在尝试做动态的基本线条图表,我已经做了动态,现在我想用其他列将另一个变量传递给X轴变量,这是我的PHP脚本代码: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>RNA</title> <scrip
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>RNA</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript" src="regression.js"></script>
<script type="text/javascript" src="highcharts.js"></script>
<script type="text/javascript">
$(function () {
var sourceData = [
<?php
if (($handle = fopen("data.csv", "r")) !== FALSE) {
$i=0;
$len = count(file('data.csv'));
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if($i==$len - 1){
echo "{y: ".$i.",".$data[1].", extprop: '".$data[4]."'}";
}else{
echo "{y: ".$i.",".$data[1].", extprop: '".$data[4]."'}," ;
}
$i++;
}
fclose($handle);
}
?>
];
$('#container').highcharts({
title: {
text: 'RNA - CP ( Radio Network Availability - Customer Perceived)',
x: -20 //center
},
tooltip: {
formatter: function () {
console.log(this.point.extprop);
var s = 'The value for <b>' + this.x +
'</b> is <b>' + this.y + '</b>';
if (this.point.extprop) {
s += 'for <b>' + this.point.extprop + '</b>';
}
return s;
}
},
subtitle: {
text: '',
x: -20
},
xAxis: {
categories: [
<?php
if (($handle = fopen("data.csv", "r")) !== FALSE) {
$i=0;
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if($i==$len - 1){
echo "'".$data[0]."'" ;
}else{
echo "'".$data[0]."'," ;
}
$i++;
}
fclose($handle);
}
?>
]},
yAxis: {
title: {
text: 'Percent'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
valueSuffix: '%'
},
legend: {
layout: 'vertical',
//align: 'right',
//verticalAlign: 'middle',
borderWidth: 0
},
series: [{
name: 'RNA',
data: sourceData
},
{
type: 'line',
marker: { enabled: false },
/* function returns data for trend-line */
data: (function() {
return fitData(sourceData).data;
})()
}],
credits: {
enabled: false
}
});
});
</script>
</head>
<body>
<script src="exporting.js"></script>
<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>
</body>
</html>
错误:当我在第20行检查元件时
var sourceData = [
{x: 0,y: 0,99.43, extprop: 'power issue'},{x: 1,y: 1,99.40, extprop: 'flood'},{x: 2,y: 2,99.24, extprop: 'power issue'},{x: 3,y: 3,99.40, extprop: 'flood'},{x: 4,y: 4,99.21, extprop: 'power issue'},{x: 5,y: 5,98.45, extprop: 'flood'},{x: 6,y: 6,98.41, extprop: 'power issue'},{x: 7,y: 7,99.18, extprop: 'flood'},{x: 8,y: 8,99.36, extprop: 'power issue'},{x: 9,y: 9,99.31, extprop: 'flood'},{x: 10,y: 10,99.38, extprop: 'power issue'},{x: 11,y: 11,99.20, extprop: 'flood'},{x: 12,y: 12,99.38, extprop: 'power issue'},{x: 13,y: 13,99.32, extprop: 'flood'} ]; ];
这是一个没有鼠标的图形:
在弹出窗口中,当鼠标悬停在日期和值上时,根据此图绘制图形,现在我想添加弹出窗口出现的原因,我已在源代码循环中传递值,如下所示:
var sourceData = [
<?php
if (($handle = fopen("data.csv", "r")) !== FALSE) {
$i=0;
$len = count(file('data.csv'));
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if($i==$len - 1){
echo "[".$i.",".$data[1].",".$data[4]."]";
}else{
echo "[".$i.",".$data[1].",".$data[4]."]," ;
}
$i++;
}
fclose($handle);
}
?>
];
var sourceData=[
];
但当我检查元素时遇到的问题是:未捕获的SyntaxError:意外标识符
以及从Github获取的regression.js文件:
这是屏幕截图:当鼠标悬停时,请在弹出窗口中观察:
当鼠标悬停在弹出窗口的某个点上时,现在我想将第4列传递给鼠标悬停在第4列的弹出窗口,我在上面的源代码中尝试了传递第4列,但我得到了错误;我知道它不会生成图形,但原因必须传递到,在哪个日期出现问题是
请帮忙,
谢谢
这是我想通过工具提示第4列的输出,请注意:
在上图中,工具提示有其原因,这就是第4列必须出现的原因。如果要将自定义属性添加到数据中,使其显示在需要添加到
源数据
数组的工具提示中,请提供帮助。Psuedo代码如下:
var sourceData = [
<?php
if (($handle = fopen("data.csv", "r")) !== FALSE) {
$i=0;
$len = count(file('data.csv'));
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if($i==$len - 1){
echo "{x: ".$i.", y: ".$data[1].", extprop: '".$data[4]."'}";
}else{
echo "{x: ".$i.", y: ".$data[1].", extprop: '".$data[4]."'}," ;
}
$i++;
}
fclose($handle);
}
?>
];
是的,我通过了3个点,但我希望鼠标悬停在工具提示中的第4列。。请注意我测试过的修订后的图形,但上面的注释中出现了错误…使用额外的列配置工具提示…?您尝试了
echo“{x:”..i.”,y:“..data[1]”,extprop:“$data[4]”和“}”代码>?您的sourceData
看起来像什么?您仍然没有添加修复程序:echo“{x:.$i.”,y:.$data[1]。”,extprop:“$data[4]。”}”代码>好的,这里的评论已经失控了-请把它带到我为您创建的聊天室。您也可以跳过php脚本并通过javascript中的$.get()函数加载您的CSV。见
var sourceData = [
<?php
if (($handle = fopen("data.csv", "r")) !== FALSE) {
$i=0;
$len = count(file('data.csv'));
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if($i==$len - 1){
echo "{x: ".$i.", y: ".$data[1].", extprop: '".$data[4]."'}";
}else{
echo "{x: ".$i.", y: ".$data[1].", extprop: '".$data[4]."'}," ;
}
$i++;
}
fclose($handle);
}
?>
];
tooltip: {
formatter: function () {
console.log(this.point.extprop);
var s = 'The value for <b>' + this.x +
'</b> is <b>' + this.y + '</b>';
if (this.point.extprop) {
s += 'for <b>' + this.point.extprop + '</b>';
}
return s;
}
}