javascript - 为什么 Angular ChartJS 中的一个标签上有更多列?

标签 javascript angular firebase charts chart.js

我想在 Chart.js 中创建条形图,并按类别显示最长的电影。 所以我有一张 map ,其中包含按类别列出的最长电影的标题和长度。 例子: 0:{“Intouchables”=>“107”}(来自喜剧) 1:{“魔鬼代言人”=>“144”}(来自惊悚片) 我把这两个数据分别放在一个数组中:

this.keys = Array.from(this.map.keys());
this.values = Array.from(this.map.values());

在条形图中,我希望标题作为标签,长度作为数据,类别作为标签。

我尝试过这个:

createDiagram(){

    this. barChartOptions = {
      scaleShowVerticalLines: false,
      responsive: true
    };

    this.barChartLabels = ['Comedy', 'Thriller'];
    this. barChartType = 'bar';
    this. barChartLegend = true;

    this.barChartData = [
      {data: [this.values[0]], label: this.keys[0]},
      {data: [this.values[1]], label: this.keys[1]}
    ];
  }

html代码:

<button (click)="createDiagram()">Create</button>
<div>
  <div style="display: block">
      <canvas baseChart
              [datasets]="barChartData"
              [labels]="barChartLabels"
              [options]="barChartOptions"
              [legend]="barChartLegend"
              [chartType]="barChartType"></canvas>
  </div>
</div>

我得到这个条形图: enter image description here

那么为什么这两篇专栏都是喜剧呢? 我怎样才能在惊悚片中出现蓝色?

最佳答案

https://stackblitz.com/edit/angular-zbiufy

您有两个类别。因此,对于每个输入,您需要添加两个值。然后对于两种颜色,你可以将第一个项目的第二个值设置为0,将第二个项目的第一个值设置为0,然后你就可以得到你想要的。

 this.barChartData = [
          {data: [this.values[0],0], label: this.keys[0]},
          {data: [0,this.values[1]], label: this.keys[1]}
        ];

关于javascript - 为什么 Angular ChartJS 中的一个标签上有更多列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61372955/

相关文章:

javascript - 使用 Node js 在 for 循环中同步多个请求

node.js - 在 index.html 中加载 angular app-root 时未显示 mat-spinner

node.js - Angular 2 路由器 : Cannot match any routes

ios - 如何将 wordpress 自定义帖子集成到新的 firebase 条目中?

android - 当应用程序处于后台时,FCM 推送通知显示白色方形图标而不是应用程序图标

android - 错误:无法解决:com.google.android.gms:play-services-flags:12.0.1

javascript - 从另一个函数读取值的正确方法是什么?

javascript - Object.defineproperty() 设置未按预期工作,抛出最大调用堆栈错误

javascript - 如何以简单的方式禁用 JavaScript 的执行?

Angular 7 Material 扩展面板闪烁