Angular 2水平叠加图表

时间:2017-07-11 16:23:15

标签: angular charts

我需要实现如下所示的图表。每个条形代表总数的百分比。例如,紫色条约为40%,最深的蓝色约为10%,绿色约为8%等等。我用Google搜索,但我找不到任何确切的结果,我发现的结果是{{ 3}},但我不确定它是否会起作用。

有人在这做过类似的事吗?开始看起来它必须是自定义实现,我试图远离它。

提前致谢!

this

1 个答案:

答案 0 :(得分:2)

这是您想要实现的简单设置。它不使用任何图表库,只使用Angular 4.2和flexbox(CSS)。

将图表的值放在数组中({em> app.ts 中的this.items):

    export class App {
      constructor() {
        this.items = [6, 11, 17, 21, 45];
      }
    }

这些只是一些样本值,它们一起是100(%)。

在HTML( app.component.html )中填充它们,并使用 app.ts中的值将栏的宽度设置为百分比(请参阅[style.width]="item + '%'"。索引并不是特别需要,但是当你想要查看哪个图表部分被渲染时,它可以很方便。

<ul class="valuechart">
  <li *ngFor="let item of items; let i = index" [style.width]="item + '%'">
    {{i}}
  </li>
</ul>

<ul>一些flexbox属性(了解有关CSS flexbox at MDN的更多信息)以水平拉伸条并让它填写。

ul {
  display: flex;
  flex-flow: row wrap;
}

其余的造型只是一些标记,以显示它有点好。

Full width bar chart with CSS flexbox and Angular

查看the demo我放在一起。

相关问题