Итак, я наконец-то заставил его работать с Apexcharts.
КОД:
EducationCharts
<div>
<div v-for="(area, i) in getAreas" :key="i">
<EducationCoursesChart :school="school" :area="area" />
</div>
EducationChart
<div id="barchart">
<div class="barChartAreaWrapper">
<p class="barChartArea">{{area}}</p>
</div>
<div class="barChartDataWrapper">
<apexchart
class="barChartData"
type="bar"
height="30"
:options="chartOptions"
:series="getCourses"
></apexchart>
</div>
</div>
метод GetCourses:
getCourses() {
var courses = [];
this.school.courses.forEach(course => {
var dataArray = [];
if (course.area === this.area) {
dataArray.push(course.credits);
courses.push({ name: course.name, data: dataArray });
}
});
return courses;
}
Возможно, есть более эффективные способы решения этой проблемы, но, как видно из кода выше, я решил создать новую диаграмму для каждой области. Чтобы сделать их более синхронизированными c я довольно сильно изменил chartOptions. Вы можете увидеть изменения ниже.
диаграммаОпции:
chartOptions: {
colors: [
this.school.color,
this.adjustColor(this.school.color, 40),
this.adjustColor(this.school.color, 80),
this.adjustColor(this.school.color, 120),
this.adjustColor(this.school.color, 200),
this.adjustColor(this.school.color, 280)
],
chart: {
type: "bar",
height: "auto",
stacked: true,
toolbar: {
tools: {
download: false
}
}
},
plotOptions: {
bar: {
horizontal: true,
barHeight: "70%"
}
},
stroke: {
width: 1,
colors: ["black"]
},
grid: {
padding: {
top: -35,
bottom: -20
}
},
xaxis: {
min: 0,
max: 41,
categories: [""],
labels: {
show: false
},
axisBorder: {
show: false
},
axisTicks: {
show: false
},
position: "none"
},
legend: {
show: false
},
tooltip: {
theme: "light",
x: {
show: false
}
}
}