首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据结构分配给chartjs属性,而不是单独分配。

将数据结构分配给chartjs属性,而不是单独分配。
EN

Stack Overflow用户
提问于 2019-03-15 22:20:25
回答 1查看 24关注 0票数 0

根据chartjs网站[底部( http://tobiasahlin.com/blog/chartjs-charts-to-get-you-started/#10-bubble-chart) ]的以下代码,必须单独分配每个数据点,这也占用了大量的空间。假设我把x,y和r都列在一个列表中。这是一种开放的问题,而不是寻求一个有限的解决方案。我将如何实现类似下面的伪代码?

代码语言:javascript
复制
labelList=['China','Denmark','Germany','Japan']
xlist= [21269017,258702, 3979083,4931877]
ylist = [5.245,7.526,6.994,5.921]
rlist = [15,10,15,15]

datasets: [
    {
      label: labelList,
      data: [{
        x: xlist,
        y: ylist,
        r: rlist
      }]
    }

而不是:

代码语言:javascript
复制
new Chart(document.getElementById("bubble-chart"), {
type: 'bubble',
data: {
  datasets: [
    {
      label: ["China"],
      data: [{
        x: 21269017,
        y: 5.245,
        r: 15
      }]
    }, {
      label: ["Denmark"],
      data: [{
        x: 258702,
        y: 7.526,
        r: 10
      }]
    }, {
      label: ["Germany"],
      data: [{
        x: 3979083,
        y: 6.994,
        r: 15
      }]
    }, {
      label: ["Japan"],
      data: [{
        x: 4931877,
        y: 5.921,
        r: 15
      }]
    }
  ]
},
options: {
  title: {
    display: true,
    text: 'Predicted world population (millions) in 2050'
  }, scales: {
    yAxes: [{ 
      scaleLabel: {
        display: true,
        labelString: "Happiness"
      }
    }],
    xAxes: [{ 
      scaleLabel: {
        display: true,
        labelString: "GDP (PPP)"
      }
    }]
  }
}
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-15 22:51:40

首先,您需要检查xListyListrListlabelList是否具有相同的长度,否则显然我们不能这样做。

之后,我们可以使用下面这样的简单代码生成必要的数据结构:

代码语言:javascript
复制
labelList = ['China', 'Denmark', 'Germany', 'Japan']
xList = [21269017, 258702, 3979083, 4931877]
yList = [5.245, 7.526, 6.994, 5.921]
rList = [15, 10, 15, 15]

if ([labelList.length, xList.length, yList.length, rList.length].every((v, i, arr) => v == arr[0])) {
  datasets = [...Array(labelList.length).keys()].map(i => ({
    label: labelList[i],
    data: [{
      x: xList[i],
      y: yList[i],
      r: rList[i]
    }]
  }))

  console.log(datasets);
}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55191356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档