javascript - 有没有办法将堆积条形图与 Apexcharts(或类似)一起使用并分离数据?
问题描述
我希望我的数据如下:
first_stacked_bar:(标签)数学| (数据,我上过的所有数学课程)Math_course_1,Math_course_2 ....
second_stacked_bar:(标签)物理| (数据)Physics_course_1,Physics_course_2 ....
third_stacked_bar:(标签)经济| (数据)Economy_course_1,Economy_course_2 ....
也就是说,我想在一个图中有多个堆叠条,它们之间没有任何联系(第一门数学课程与第一门物理或经济课程没有关系)。查看几个图表包中的示例,情况并非如此(与例如https://apexcharts.com/vue-chart-demos/bar-charts/stacked/#相比,其中每个第一个数据条目都共享“Marine Sprite”) .
目前,我正在将每一行拆分为自己的图表,该图表正在运行,但效果不佳或效果不佳。
如果有人有要推荐的图表包或要分享的想法,我将非常高兴。我在我的项目中使用 Vue.js,所以如果它也适用于 Vue,那就太好了。
解决方案
所以我终于让它与 Apexcharts 一起工作。
代码:
教育图表
<div>
<div v-for="(area, i) in getAreas" :key="i">
<EducationCoursesChart :school="school" :area="area" />
</div>
教育图表
<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() {
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;
}
可能有更好的方法来解决这个问题,但正如您从上面的代码中看到的那样,我决定为每个区域制作一个新图表。为了使它们更加同步,我对 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
}
}
}
推荐阅读
- authorization - 如何添加服务器端检查 api 仅由租户管理员调用
- python - 寻找从 A 到 B 的路线
- c# - 为 HttpPost 操作获取 404
- javascript - Discord.js 关于获取对嵌入做出反应的用户的问题{更新}
- python - 如何在操作系统级别导入 python 包以便它可以重用
- javascript - 在web3 fromWei方法中将字符串精确转换为十进制
- php - Google 更新创建的错误 - 此文件应通过 HTTPS 提供。此下载已被阻止
- regex - 尝试使用正则表达式提取价值
- sql-server-2008 - 查询以查找条目并转置
- javascript - vue 将图片转换为base64