当前位置: 首页 > 知识库问答 >
问题:

堆叠条形图与chartjs包含的值

赫连泰宁
2023-03-14

我正在尝试创建包含值的访客条形图,例如:

我想显示一个每日总访客的条形图,该条形图应包含总访客和首次访客的信息。

所以数据条应该看起来像:

data: {
    labels: getDataAttributes(data, 'data-date'),
    // an array holding the date of each bar (custom function)
    // for example purposes lets say its just 3 bars
    
    datasets: [{
        label: ['Number of visitors', 'Number of new visitors'],
        data: [[20,15], [25,10], [30, 15]],
        // Here if we would use a simple stacked bar chart the height would be the sum of 2 values
        // e.g.(20+15=35), but I wish that the bar height would be the number of total visitors 20
        // the tooltip should contain values of total visitors and new visitors respectively 20 and 15
    }]
}

我查看了chartjs文档,但只找到了具有堆叠值的示例,并且该解决方案不适用于我所需的设计,是否有人可以参考文档/文章/教程或个人经验,或者我应该切换到d3js?谢谢

共有1个答案

冯枫
2023-03-14

您可以定义两个数据集,第一个包含新访问者的值,第二个包含所有访问者的值。

然后将x轴定义为堆叠:

options: {
  scales: {
    xAxes: [{
      stacked: true
    }],

请查看下面的可运行代码段,了解其工作原理:

const baseData = [[20,15], [25,10], [30, 15]];

new Chart('chart', {
  type: 'bar',
  data: {
    labels: ['25.10.2020', '26.10.2020', '27.10.2020'],
    datasets: [{
      label: 'Number of new visitors',
      data: baseData.map(v => v[1]),
      backgroundColor: 'green'
    },
    {
      label: 'Number of visitors',
      data: baseData.map(v => v[0]), 
      backgroundColor: 'blue'
    }]
  },
  options: {
    scales: {
      xAxes: [{
        stacked: true
      }],
      yAxes: [{
        ticks: {
          beginAtZero: true
        }
      }]
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.4/Chart.min.js"></script>
<canvas id="chart" height="100"></canvas>
 类似资料:
  • 我有以下不同月份的数据 一月:[1,5,3] Feb:[10,5] 三月:[4,8] 四月:[7] 可能:[3,1,5,0,7] 我想生成如下所示的条形图 现在,我有以下代码,我想知道如何生成如上图所示的条形图。 }); 非常感谢。

  • 我需要一张这样的图表: 我找到了这个示例,但它使用了旧版本的。我尝试使用v2.0,但我不明白。 有人能贴个例子吗?

  • 我一直在寻找一种使用Chartjs绘制此图的方法,但没有成功。这在Chartjs中可能吗? 我想画的图表 我尝试的图表 以下是我的设置: 我知道如何设置堆叠条形图,只是不知道如何设置图像中的图例。任何帮助都很感激。提前感谢!

  • 我正在尝试使用chartJs创建一个堆叠条形图(垂直或水平)。在遵循了他们的文档并尝试了各种解决方案之后,我仍然无法获得要叠加的值。 我创造了一把小提琴https://jsfiddle.net/trig79/oxantepu/1/ 感谢任何关于我哪里出错的指导

  • 我需要一种在ChartJS中显示堆叠条形图中多个数据段的方法。在官方文档中,标签属于堆栈的每个部分,但我需要这些部分是独立的。 我已经模拟了我需要实现的输出类型。我们每天有三个堆叠的条,每个条显示一个单独的数据集。在每个数据集中,我们有一个段,它实际上是该条的子集。 不幸的是,中的属性似乎不接受数组。这个图表可以使用ChartJS吗?

  • 我的问题是,chart js根据数据集上定义的顺序呈现条形图。如下所示,数组索引0处的值为和。由于首先通过了2500,这将阻止1000值的条形图。 https://jsfiddle.net/6bjy9nxh/352/