Я использую это angular-tag-cloud . И я не могу установить правильный вес слов. Это должно зависеть от количества слов.
Это HTML:
<div class="row">
<div class="card box-shadow-none" *ngIf = "isShowGraph">
<div class="card-header card-header-new card-header-border">
<div class="form-inline">
<h6>Subject Word Cloud</h6>
</div>
</div>
<div class = "card-content col-xl-12 col-lg-9 col-md-9 col-sm-12">
<div>
<angular-tag-cloud
[data]="data"
[width]="1"
[height]="options.height"
(clicked) = 'filterByWordCloudSubject($event)'>
</angular-tag-cloud>
</div>
</div>
</div>
</div>
А это TS:
this.trackingService.getSubjectList(this.filterTrackingData).subscribe(data => {
let str = '';
data.results.map(res => {
str += res.subject + ' ';
str.replace(/,/g, ' ');
});
this.data = this.compareString(str.replace(/\?/g, '').replace(/,/g, '').replace(/:/g, '').split(' ')).map(res => {
return {'text': res, 'weight': Math.random()};
});
});
Например. У меня есть слова: яблоки (3 раза), апельсины (5 раз), виноград (1 раз). Поэтому апельсины должны иметь наибольший вес. Это должно быть больше. Второе должно быть яблоки. И последний виноград.