php – 谷歌图表 – 绘制空值
发布时间:2020-12-13 17:25:16 所属栏目:PHP教程 来源:网络整理
导读:我创建了一个折线图,它用php和json加载数据. 问题是图表将NULL值绘制为0并且看起来非常难看. 我最好的猜测是我以错误的方式创建json,而我真正想要的输出是{“v”:}而不是{“v”:“”}. 折线图现在: 我想要的是: PHP代码 $reports['cols'][] = array(labe
我创建了一个折线图,它用php和json加载数据.
问题是图表将NULL值绘制为0并且看起来非常难看. 我最好的猜测是我以错误的方式创建json,而我真正想要的输出是{“v”:}而不是{“v”:“”}. 折线图现在: 我想要的是: PHP代码 $reports['cols'][] = array(label => "Time",type => "string"); $reports['cols'][] = array(label => "Today",type => "number"); $reports['cols'][] = array(label => "Yesterday",type => "number"); $reports['cols'][] = array(label => "Budget",type => "number"); //Some mysql code that populates values ($today,$yesterday,$budget) $rows = array(); for($i=10; $i <= 21; $i++){ $temp = array(); $temp[] = array('v' => (int) $i); //Format string will return "" and not "0" if value is blank $temp[] = array('v' => (string) $today["$i"]); $temp[] = array('v' => (string) $yesterday["$i"]); $temp[] = array('v' => (string) $budget); $rows[]['c'] = $temp; } $reports['rows'] = $rows; $string=json_encode($reports); echo $string; php的输出: { "cols":[ {"label":"Time","type":"string"},{"label":"Today","type":"number"},{"label":"Yesterday",{"label":"Budget","type":"number"} ],"rows":[ {"c":[{"v":10},{"v":"0"},{"v":"90000"}]},{"c":[{"v":11},{"v":"22491"},{"v":"7420"},{"c":[{"v":12},{"v":""},{"v":"50082"},{"c":[{"v":13},{"v":"91660"},{"c":[{"v":14},{"v":"109204"},{"c":[{"v":15},{"v":"115280"},{"c":[{"v":16},{"v":"111853"},{"c":[{"v":17},{"v":"87368"},{"c":[{"v":18},{"v":"33063"},{"c":[{"v":19},{"v":"14903"},{"c":[{"v":20},{"v":"1441"},{"c":[{"v":21},{"v":"90000"}]} ] } Javascript google.load("visualization","1",{packages:["corechart"]}); google.setOnLoadCallback(drawChart); function drawChart() { var jsonData = $.ajax({ url: "functions/load.php?q=salesChart",dataType:"json",async: false }).responseText; // Create our data table out of JSON data loaded from server. var data = new google.visualization.DataTable(jsonData); var options = { title: 'Money / Hour',colors: ['#4BA15A','#45559D','red'],legend: {position: 'top'},lineWidth: 2,pointSize: 3,fontName: 'Helvetica',fontSize: 10,interpolateNulls: false,backgroundColor: {strokeWidth: 1},chartArea: {left: 70,top: 60,width: "85%",height: "70%"} }; var chart = new google.visualization.LineChart(document.getElementById('chart_div')); chart.draw(data,options); } 解决方法
我用{“v”:null}替换{“v”:“”}并且知道它看起来很棒!
jsonData=jsonData.replace(/""/g,'null'); 结果是没有绘制0的图表 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |