首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从对象到创建图表的数据集

从对象到创建图表的数据集
EN

Stack Overflow用户
提问于 2020-11-30 16:47:55
回答 1查看 33关注 0票数 0

通过一个api调用,我有一个对象,我试图用它来创建一个带有CHART.XKCD的图表。

创建一个条形图是可行的,因为我只有一个键,但是我不知道如何得到有多个键的堆叠条形图。

有人能告诉我如何做到这一点吗?

代码语言:javascript
复制
const result  = {
  'title': 'What a show',
  'xlabel': 'Month',
  'data': {
    'labels': [
      '01',
      '02',
      '04'
    ],
    'datasets': {
      'PinTotalMonth': [
        0,
        0,
        272
      ],
      'BankTotalMonth': [
        2195,
        930,
        '786.5'
      ],
      'ContantTotalMonth': [
        0,
        0,
        '264.25'
      ]
    }
  },
  'ylabel': 'Count'
};


var ylabel = result.ylabel;
var xlabel = result.xlabel;
var labels = result.data.labels;
var mydata = result.data.datasets;
var label = "Data";

$.each(result.data.datasets, function(key, value) {
  console.log("Data: " + "type: " + key + " en value: " + value);
  // alert(key + ': ' + value);
});

const svgStackedBar = document.querySelector('.stacked-bar-chart');
new chartXkcd.StackedBar(svgStackedBar, {
  ylabel: ylabel,
  xlabel: xlabel,
  data: {
    labels: labels,
    datasets: [{
      label: label,
      data: mydata
    }]
  }
})
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.xkcd@1.1.12/dist/chart.xkcd.min.js"></script>

<svg class="stacked-bar-chart"></svg>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-30 17:23:20

有很多问题。

其中一个问题是数据中的奇怪字符串,而不是浮点数。

我映射了数据集以适合documentation

代码语言:javascript
复制
const result = {
  'title': 'What a show',
  'xlabel': 'Month',
  'data': {
    'labels': [
      '01',
      '02',
      '04'
    ],
    'datasets': {
      'PinTotalMonth': [
        0,
        0,
        272
      ],
      'BankTotalMonth': [
        2195,
        930,
        786.5
      ],
      'ContantTotalMonth': [
        0,
        0,
        264.25
      ]
    }
  },
  'ylabel': 'Count'
};


var ylabel = result.ylabel;
var xlabel = result.xlabel;
var labels = result.data.labels;
var mydata = result.data.datasets;
var label = "Data";

const data = {
  labels: labels,
  datasets: Object.keys(result.data.datasets).map(key => ({
    label: key,
    data: result.data.datasets[key]
  }))
}


const svgStackedBar = document.querySelector('.stacked-bar-chart');
new chartXkcd.StackedBar(svgStackedBar, {
  ylabel: ylabel,
  xlabel: xlabel,
  data: data
})
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.xkcd@1.1.12/dist/chart.xkcd.min.js"></script>

<svg class="stacked-bar-chart"></svg>

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

https://stackoverflow.com/questions/65070421

复制
相关文章

相似问题

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