【问题标题】:use d3.json instead of d3.csv to create bubble chart使用 d3.json 而不是 d3.csv 创建气泡图
【发布时间】:2017-03-09 04:58:27
【问题描述】:

我正在尝试使用以下代码来创建气泡图: https://bl.ocks.org/mbostock/4063269 此代码用于加载 csv 文件:

d3.csv("flare.csv", function(d) {
  d.value= +d.value;
  if (d.value) return d;
}, function(error, classes) {
  if (error) throw error;

我想加载一个 json 文件,所以我写了这个:

d3.json("data1.php", function(d) {
    d.forEach(function(data) {
        data.value= +data.value;
    });
    if (d.value) return d;
    },function(error, classes) {
  if (error) throw error;

php 文件的输出是这样的:

[{"disease":"Cold","value":"33"},{"disease":"Anemia","value":"23"},{"disease":"Hepatitis B","value":"21"},{"disease":"Gum disease","value":"19"},{"disease":"Lung Cancer","value":"17"},{"disease":"Diarrhea","value":"15"},{"disease":"Strep Throat","value":"13"},{"disease":"STDs","value":"11"},{"disease":"Heart Disease","value":"8"},{"disease":"Type 2 Diabetes","value":"6"}]

由于某种原因,我的代码(使用 d3.json ...)无法正常工作。我只是得到一个空白页。非常感谢您的意见。

【问题讨论】:

    标签: javascript php json csv d3.js


    【解决方案1】:

    d3.csv 不同,d3.json接受访问器函数。

    所以,不要这样:

    d3.json("data1.php", function(d) {
        d.forEach(function(data) {
            data.value= +data.value;
        });
        if (d.value) return d;
        }, function(error, classes) {
        if (error) throw error;
    

    应该是这样的:

    d3.json("data1.php", function(error, classes) {
        if (error) throw error;
    

    并在回调中使用classes 执行您的forEach

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-23
      • 2016-03-01
      • 1970-01-01
      • 2018-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多