将Google Sheet JSON数据读入Chart.js

小伙子

我有一个简单的两个列,一个标签,另一个是值的谷歌表。我成功将其转换为json,并使用以下js在表中使用了此类值

$.getJSON("https://spreadsheets.google.com/feeds/list/1GnakUnNQvFXjuzMSPnBpU9eufb4SooQLGL2oFc3lfAs/od6/public/values?alt=json", function (data) {

      var sheetData = data.feed.entry;

      var i;
      for (i = 0; i < sheetData.length; i++) {

        var names = data.feed.entry[i]['gsx$names']['$t'];
        var numbers = data.feed.entry[i]['gsx$numbers']['$t'];



      }
    });

并想在雷达chart.js中使用它,我设法使其起作用,但仅适用于硬编码数据

var randomScalingFactor = function() {
  return Math.round(Math.random() * 100);
};
var chartColors = {
    red: 'rgba(253, 48, 76)',
    orange: 'rgb(255, 159, 64)',
    yellow: 'rgba(240,236,211)',
    green: 'rgb(75, 192, 192)',
    blue: 'rgba(42,105,163)',
    purple: 'rgb(153, 102, 255)',
    grey: 'rgba(48,48,50)'
};

var color = Chart.helpers.color;
var config = {
  type: 'radar',
  data: {
    labels: [
      "label1",
      "label2", "label3", "label3", "label4", "label5", "label6"
    ],
    datasets: [{
      label: "Current level",
      backgroundColor: color(chartColors.red).alpha(0.2).rgbString(),
      borderColor: chartColors.red,
      pointBackgroundColor: chartColors.red,
      data: [
        95,
        65,
        74,
        87,
        70,
        78,
        93
      ]
    }, {
      label: "Goal level",
      backgroundColor: color(chartColors.blue).alpha(0.2).rgbString(),
      borderColor: chartColors.blue,
      pointBackgroundColor: chartColors.blue,
      data: [
        95,
        80,
        85,
        90,
        89,
        87,
        95
      ]
    }, ]
  },
  options: {
    legend: {
      position: 'top',
      labels: {
        fontColor: 'white'
      }
    },
    title: {
      display: true,
      text: 'Curent level vs goal',
      fontColor: 'white'
    },
      maintainAspectRatio: false,
    scale: {
      ticks: {
        beginAtZero: true,
        fontColor: 'white', // labels such as 10, 20, etc
        showLabelBackdrop: false // hide square behind text
      },
      pointLabels: {
        fontColor: 'white' // labels around the edge like 'Running'
      },
      gridLines: {
        color: 'rgba(255, 255, 255, 0.2)'
      },
      angleLines: {
        color: 'white' // lines radiating from the center
      }
    }
  }
};

// A plugin to draw the background color
Chart.plugins.register({
  beforeDraw: function(chartInstance) {
    var ctx = chartInstance.chart.ctx;
    ctx.fillStyle = '#303032';
    ctx.fillRect(0, 0, chartInstance.chart.width, chartInstance.chart.height);
  }
})

window.myRadar = new Chart(document.getElementById("canvas"), config);

问题是,在某种意义上,我无法让它们两者一起工作,如果我添加新行(标签和值),它将更新图表,我试图用变量I替换图表代码中的数据部分创建(名称和数字),但没有成功。另外,我计划将它与d3一起使用,而不仅是chart.js,而且还添加了新列,它的工作方式是否相同?

uminder

请注意,它jQuery.getJSON()是异步执行的。因此,仅在数据可用并处理为适合您的图表的格式后,才应创建图表。如果将负责图表创建的代码放在如下的jQuery.getJSON()成功处理程序(回调函数)中,则可以完成此操作

$.getJSON("https://spreadsheets.google.com/feeds/list/1GnakUnNQvFXjuzMSPnBpU9eufb4SooQLGL2oFc3lfAs/od6/public/values?alt=json", data => {
  var labels = [];
  var numbers = [];
  data.feed.entry.forEach(e => {
    labels.push(e['gsx$names']['$t']);
    numbers.push(Number(e['gsx$numbers']['$t']));
  });
  new Chart(document.getElementById('myChart'), {
    type: 'radar',
    data: {
      labels: labels,
      datasets: [{
        label: 'Current level',
        data: numbers,
        backgroundColor: 'rgba(253, 48, 76, 0.2)',
        borderColor: 'rgb(253, 48, 76)',
        pointBackgroundColor: 'rgb(253, 48, 76)'
      }]
    },
    options: {
      tooltips: {
        callbacks: {
          title: (tooltipItem, data) => data.labels[tooltipItem[0].index]
        }
      }
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script>
<canvas id="myChart"></canvas>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将数据从 Ruby 添加到 Google Sheet?

来自分类Dev

将 Firebase 数据转换为格式化的 Google Sheet

来自分类Dev

将json数据读入DataFrame

来自分类Dev

如何基于单元格值将数据从Google Sheet显示到Google Web App?

来自分类Dev

如何使用Google-sheet-apis(Node.js)从Google-sheet获取特定行?

来自分类Dev

Google脚本-将SheetC数据从Sheet21复制到columnC Sheet2(如果Sheet2中尚不存在)

来自分类Dev

在 HTML 页面中显示 Google Sheet 数据

来自分类Dev

Google Script - 从 Gmail 获取数据到 Sheet

来自分类Dev

将数据写入Excel Sheet Java

来自分类Dev

将数据写入Excel Sheet Java

来自分类Dev

在Google Sheet中使用Regex解析JSON

来自分类Dev

使用 Jolt 简化 Google Sheet JSON

来自分类Dev

如何根据Google Sheet中的条件将数据从输入范围传输到输出范围?

来自分类Dev

将数据插入到 Google Sheet 中的不同工作表中

来自分类Dev

将JSON数据输出到Chart.js标签和数据

来自分类Dev

Google脚本将GET请求发送到Trello API并将数据导入到Google Sheet

来自分类Dev

将工作表插入 Google Sheet

来自分类Dev

如何使用C#和Sheet Api访问数据并将其插入Google Spread Sheet?

来自分类Dev

根据标题将数据从Sheet1复制到Sheet2

来自分类Dev

根据日期动态将数据从sheet2引用到sheet1

来自分类Dev

根据标题将数据从Sheet1复制到Sheet2

来自分类Dev

如何使用宏将现有数据从 Sheet1 更新到 Sheet2?

来自分类Dev

如何将JSON文件读入Postgresql数据库?

来自分类Dev

将JSON文件读入Jarray并动态访问数据

来自分类Dev

如何将JSON文件读入数据框?

来自分类Dev

如何从 Google Sheet 中的响应 + 数据打印 HTML

来自分类Dev

如何使 Excel 数据透视表在 Google Sheet 中工作?

来自分类Dev

如何使用 Ajax/JSON 方法将数据库中的数据用于 chart.js(气泡图)?

来自分类Dev

Looping through Google Sheet

Related 相关文章

  1. 1

    如何将数据从 Ruby 添加到 Google Sheet?

  2. 2

    将 Firebase 数据转换为格式化的 Google Sheet

  3. 3

    将json数据读入DataFrame

  4. 4

    如何基于单元格值将数据从Google Sheet显示到Google Web App?

  5. 5

    如何使用Google-sheet-apis(Node.js)从Google-sheet获取特定行?

  6. 6

    Google脚本-将SheetC数据从Sheet21复制到columnC Sheet2(如果Sheet2中尚不存在)

  7. 7

    在 HTML 页面中显示 Google Sheet 数据

  8. 8

    Google Script - 从 Gmail 获取数据到 Sheet

  9. 9

    将数据写入Excel Sheet Java

  10. 10

    将数据写入Excel Sheet Java

  11. 11

    在Google Sheet中使用Regex解析JSON

  12. 12

    使用 Jolt 简化 Google Sheet JSON

  13. 13

    如何根据Google Sheet中的条件将数据从输入范围传输到输出范围?

  14. 14

    将数据插入到 Google Sheet 中的不同工作表中

  15. 15

    将JSON数据输出到Chart.js标签和数据

  16. 16

    Google脚本将GET请求发送到Trello API并将数据导入到Google Sheet

  17. 17

    将工作表插入 Google Sheet

  18. 18

    如何使用C#和Sheet Api访问数据并将其插入Google Spread Sheet?

  19. 19

    根据标题将数据从Sheet1复制到Sheet2

  20. 20

    根据日期动态将数据从sheet2引用到sheet1

  21. 21

    根据标题将数据从Sheet1复制到Sheet2

  22. 22

    如何使用宏将现有数据从 Sheet1 更新到 Sheet2?

  23. 23

    如何将JSON文件读入Postgresql数据库?

  24. 24

    将JSON文件读入Jarray并动态访问数据

  25. 25

    如何将JSON文件读入数据框?

  26. 26

    如何从 Google Sheet 中的响应 + 数据打印 HTML

  27. 27

    如何使 Excel 数据透视表在 Google Sheet 中工作?

  28. 28

    如何使用 Ajax/JSON 方法将数据库中的数据用于 chart.js(气泡图)?

  29. 29

    Looping through Google Sheet

热门标签

归档