Vue2+echarts横向进度条类型颜色渐变柱形图
最近遇到个需求,用图表横向显示数据并且文字要在两边柱形上面,而且柱形要颜色渐变也就是下图所示:
分析一下这个图表的需求,大概为几点:
1.横向柱形图。其实这点不难,x与y轴数据互换一下就可以了。
2.背景有个黑色的总进度条。
3.柱形图两边文字在柱子上方。
4.柱子颜色渐变。
分析完需求,代码如下,每一行都做了注释
drawPowerCharts() {
let myChart10 = this.$echarts.init(document.getElementById("myCharts"));
myChart.setOption({
// 设置图表的选项
grid: {
x: 20, // 距离容器左边的距离
y: 40, // 距离容器上边的距离
x2: 30, // 距离容器右边的距离
y2: 20, // 距离容器下边的距离
},
// 设置图表的网格样式,即图表距禒容器四边的距禒
xAxis: {
type: "value", // x 轴类型为数值型
show: false, // 不显示 x 轴
},
// 设置图表的 x 轴的类型为数值型,并且不显示 x 轴
tooltip: {
trigger: "axis", // 触发类型为坐标轴触发
axisPointer: {
type: "shadow", // 指示器类型为阴影
},
},
// 配置图表的提示框,当鼠标悬浮在数据点上时显示信息
yAxis: {
type: "category", // y 轴类型为类目型
axisLabel: { show: false }, // 不显示刻度标签
data: this.yxdata, // 使用传入的数据作为轴数据
splitLine: {
show: false, // 不显示分隔线
},
axisLine: {
show: false, // 不显示坐标轴轴线
},
axisTick: {
show: false, // 不显示刻度线
},
},
// 设置图表的 y 轴的类型为类目型,不显示刻度标签,使用传入的数据作为轴数据,同时不显示分隔线、坐标轴轴线和刻度线
series: [
{
type: "bar", // 类型为柱状图
data: [100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100], // 数据
barWidth: "10px", // 柱条宽度
barGap: "-100%", // 柱条间距
itemStyle: {
barBorderRadius: 10, // 柱条圆角
color: "#01115E", // 柱条颜色
},
label: {
show: true, // 显示标签
color: "#fff", // 标签颜色
formatter: function (params) {
var labels = [
"第一个",
"第二天数",
"第三",
"第四",
"第五代码",
"第六",
"第七救赎",
"第八",
"第九",
"第十",
];
return labels[params.dataIndex]; // 返回自定义标签
},
position: "right", // 标签位置
align: "right", // 对齐方式
offset: [-20, -20], // 偏移量
valueAnimation: true, // 值动画
},
},
// 这个配置项用来设置图表的背景进度条,数据直接全用了 100
{
type: "bar",
itemStyle: {
barBorderRadius: 10,
color: {
type: "linear",
x: 0, // 渐变起始点 x 坐标,取值范围为 0 - 1
y: 0, // 渐变起始点 y 坐标,取值范围为 0 - 1
x2: 1, // 渐变结束点 x 坐标,取值范围为 0 - 1
y2: 0, // 渐变结束点 y 坐标,取值范围为 0 - 1
colorStops: [
{
offset: 0, // 渐变颜色起始位置的偏移量,取值范围为 0 - 1
color: "#143787", // 起始颜色
},
{
offset: 1, // 渐变颜色结束位置的偏移量,取值范围为 0 - 1
color: "#12FF3F", // 结束颜色
},
],
},
},
data: this.axdata.sort((a, b) => a - b),
barWidth: "10px",
barGap: "-100%", //设置柱形重合的重要步骤
label: {
color: "#5F98CB",
show: true,
formatter: "{b}",
position: "left",
align: "left",
offset: [10, -20],
},
},
// 这个配置项用来设置实际数据的柱形条,并设置了颜色、宽度、间距和左侧标签的样式
],
});
},