当您在连接数据库到d3的php脚本的sql查询中使用计数器时,如何调用该计数器以使用d3中存储的值?比如我有查询d3 - 如何在php脚本中使用计数器中的值
SELECT `ID_to`, count(*) as counter from `citations` group by `ID_to` ORDER BY counter desc
现在我想从D3计数器调用和使用它的值来扩大我的Y轴在我的散点图。它似乎当我使用它,就好像它是在表即一列工作:
var yValue = function(d) { return d.counter;}, // data -> value
yScale = d3.scale.linear().range([height, 0]), // value -> display
yMap = function(d) { return yScale(yValue(d));}, // data -> display
yAxis = d3.svg.axis().scale(yScale).orient("left");
d3.json("connection2.php", function(error, data){
data.forEach(function(d) {
d['ID_from'] =+d['ID_from'];
d['counter'] = +d['counter'];
console.log(d);
})
如何访问这些计数器值和D3使用它们?我非常感谢任何帮助,我对自己在圈子里走来走去感到非常沮丧。我得到的错误是:
Error: Invalid value for <circle> attribute cy="NaN"
编辑:: 这里是我的PHP脚本:
<?php
$username = "xxx";
$password = "xxx";
$host = "xxx";
$database="xxx";
$server = mysql_connect($host, $username, $password);
$connection = mysql_select_db($database, $server);
$myquery = "SELECT `ID_to`, count(*) as `counter` from `citations` group by `ID_to`";
$query = mysql_query($myquery);
if (! $query) {
echo mysql_error();
die;
}
$data = array();
for ($x = 0; $x < mysql_num_rows($query); $x++) {
$data[] = mysql_fetch_assoc($query);
}
echo json_encode($data);
mysql_close($server);
?>
我在浏览器中运行它,并返回正确的结果。
我正在使用这个作为我的域名'xScale.domain([d3.min(data,xValue)-1,d3.max(data,xValue)+1]); yScale.domain([d3.min(data,yValue)-1,d3.max(data,yValue)+1]);' –
@JohnPower,请参阅上面的编辑。 – Mark