javascript - 使用 d3 js 在 phant 中绘制 json 数据

标签 javascript json d3.js

我正在尝试使用 d3.js 可视化存储在 sparkfun cloud 中的数据(物联网云)。 There is example using google chart for visualizing sparkfun cloud ,使用以下脚本:

<!DOCTYPE html>
<html>
  <head>
    <!-- EXTERNAL LIBS-->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="https://www.google.com/jsapi"></script>

    <!-- EXAMPLE SCRIPT -->
    <script>

      // onload callback
      function drawChart() {

        var public_key = 'dZ4EVmE8yGCRGx5XRX1W';

        // JSONP request
        var jsonData = $.ajax({
          url: 'https://data.sparkfun.com/output/' + public_key + '.json',
          data: {page: 1},
          dataType: 'jsonp',
        }).done(function (results) {

          var data = new google.visualization.DataTable();

          data.addColumn('datetime', 'Time');
          data.addColumn('number', 'Temp');
          data.addColumn('number', 'Wind Speed MPH');

          $.each(results, function (i, row) {
            data.addRow([
              (new Date(row.timestamp)),
              parseFloat(row.tempf),
              parseFloat(row.windspeedmph)
            ]);
          });

          var chart = new google.visualization.LineChart($('#chart').get(0));

          chart.draw(data, {
            title: 'Wimp Weather Station'
          });

        });

      }

      // load chart lib
      google.load('visualization', '1', {
        packages: ['corechart']
      });

      // call drawChart once google charts is loaded
      google.setOnLoadCallback(drawChart);

    </script>

  </head>
  <body>
    <div id="chart" style="width: 100%;"></div>
  </body>
</html>

我希望使用 d3.js 来绘制数据而不是使用 google chart,因为它提供了更大的灵 active (我很惊讶需要付出多少努力才能使用 google chart 重新调整图表的大小)。为此,可能需要使用 d3.js json 提取器从网站获取数据。我已根据问题 1 在下面进行了尝试, 2 :

var data1;
var url = "https://data.sparkfun.com/output/dZ4EVmE8yGCRGx5XRX1W.json"

d3.json(url, function (json) {
         if (error) return console.warn(error);
     //data1 = json;
     data1=json;
     consol.log(data1)
             //code here
                     })

没用。我可能缺少一些关键信息,因为我是 d3.js 和 java 的新手。请给我一个方向,以便我可以遵循。谢谢!

最佳答案

由于您正在 try catch 错误,因此您必须将错误作为匿名函数中的第一个参数传递:

d3.json(url, function (error, json) {
    //first argument -----^
    if (error) return console.warn(error);
    data1=json;
    consol.log(data1)
    //code here
 })

注意这一点:在 d3.json 中,“error”是第一个参数,而不是第二个。

一个更简单的替代方法是简单地删除“错误”:

d3.json(url, function (json) {
    data1=json;
    consol.log(data1)
    //code here
 })

关于javascript - 使用 d3 js 在 phant 中绘制 json 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41800517/

相关文章:

javascript - Angular 4 刷新 <img src={{ ... }} > 当值改变时

javascript - 从 mediasource sourcebuffer 中动态附加和删除 mpeg-dash 片段

javascript - D3饼图json结构问题?

javascript - 在字典中搜索键并打印值 - Javascript

javascript - 在 d3.js 中添加图像

javascript - 在 div d3.js 中显示选择选项

javascript - 调用另一个指令的模板指令

javascript - 用于文章或帖子创建的 HTML/CSS/JS 模板或插件

javascript - jquery 选择更改隐藏/显示 div

ios - 日期格式化程序在某些情况下返回 null(在 12 :59:59) 之后