mirror of https://github.com/doccano/doccano.git
pythondatasetsactive-learningtext-annotationdatasetnatural-language-processingdata-labelingmachine-learningannotation-tool
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.9 KiB
78 lines
1.9 KiB
<template>
|
|
<v-card>
|
|
<v-card-title v-text="title" />
|
|
<v-divider />
|
|
<v-tabs show-arrows>
|
|
<v-tab v-for="(value, user) in chartJSFormat" :key="user" class="text-capitalize">
|
|
{{ user }}
|
|
</v-tab>
|
|
<v-tab-item v-for="(value, user) in chartJSFormat" :key="user">
|
|
<v-card-text>
|
|
<bar-chart :chart-data="value" />
|
|
</v-card-text>
|
|
</v-tab-item>
|
|
</v-tabs>
|
|
</v-card>
|
|
</template>
|
|
|
|
<script lang="ts">
|
|
import type { PropType } from 'vue'
|
|
import Vue from 'vue'
|
|
import BarChart from '@/components/metrics/ChartBar.vue'
|
|
import { Distribution } from '~/domain/models/metrics/metrics'
|
|
import { LabelDTO } from '~/services/application/label/labelData'
|
|
|
|
export default Vue.extend({
|
|
components: {
|
|
BarChart
|
|
},
|
|
|
|
props: {
|
|
title: {
|
|
type: String,
|
|
required: true,
|
|
default: 'Distribution'
|
|
},
|
|
distribution: {
|
|
type: Object as PropType<Distribution>,
|
|
required: true
|
|
},
|
|
labelTypes: {
|
|
type: Array as PropType<LabelDTO[]>,
|
|
default: () => [],
|
|
required: true
|
|
}
|
|
},
|
|
|
|
computed: {
|
|
colorMapping(): { [text: string]: string } {
|
|
return Object.fromEntries(
|
|
this.labelTypes.map((labelType) => [labelType.text, labelType.backgroundColor])
|
|
)
|
|
},
|
|
|
|
chartJSFormat(): any {
|
|
const data: { [user: string]: { labels: string[]; datasets: any[] } } = {}
|
|
for (const user in this.distribution) {
|
|
const labels = Object.keys(this.distribution[user])
|
|
labels.sort()
|
|
const counts = labels.map((label) => this.distribution[user][label])
|
|
const colors = labels.map((label) =>
|
|
label in this.colorMapping ? this.colorMapping[label] : '#00d1b2'
|
|
)
|
|
data[user] = {
|
|
labels,
|
|
datasets: [
|
|
{
|
|
title: this.title,
|
|
backgroundColor: colors,
|
|
data: counts
|
|
}
|
|
]
|
|
}
|
|
}
|
|
return data
|
|
}
|
|
}
|
|
})
|
|
</script>
|