柱状图
配置项如下
let color0 = ['#8b3c2f', '#7c4f4a', '#cc1c00', '#ff2e00', '#a10400', '#90909c']//红 上到下6种颜色
let color1 = ['#80562e', '#592f31', '#ca8200', '#fa7e00', '#a47c00', '#90909c']//橙 上到下6种颜色
let color2 = ['#7f7c37', '#4e5b52', '#fdd615', '#eff95c', '#ffc309', '#90909c']//黄 上到下6种颜色
let color3 = ['#377163', '#537870', '#29cc6f', '#3bd867', '#00a27d', '#90909c']//青 上到下6种颜色
//---------------头---------阴影-------阴面---------柱上------柱下-------圈-----
var Arr = [
{
name: '微博',
value: 100
},
{
name: '微信',
value: 90
},
{
name: '新浪',
value: 70
},
{
name: 'QQ',
value: 60
},
{
name: '飞信',
value: 50
}
]
function color (c) {
let str = ''
switch (c) {
case 0:
str = color0[0]
break;
case 1:
str = color1[0]
break;
case 2:
str = color2[0]
break;
case 3:
str = color3[0]
break;
default:
str = color3[0]
}
return str
}
function colorOne (c) {
let str = ''
switch (c) {
case 0:
str = color0[4]
break;
case 1:
str = color1[4]
break;
case 2:
str = color2[4]
break;
case 3:
str = color3[4]
break;
default:
str = color3[4]
}
return str
}
function colorTwo (c) {
let str = ''
switch (c) {
case 0:
str = color0[3]
break;
case 1:
str = color1[3]
break;
case 2:
str = color2[3]
break;
case 3:
str = color3[3]
break;
default:
str = color3[3]
}
return str
}
function colorThree (c) {
let str = ''
switch (c) {
case 0:
str = color0[4]
break;
case 1:
str = color1[4]
break;
case 2:
str = color2[4]
break;
case 3:
str = color3[4]
break;
default:
str = color3[4]
}
return str
}
function colorFour (c) {
let str = ''
switch (c) {
case 0:
str = color0[1]
break;
case 1:
str = color1[1]
break;
case 2:
str = color2[1]
break;
case 3:
str = color3[1]
break;
default:
str = color3[1]
}
return str
}
function colorFive (c) {
let str = ''
switch (c) {
case 0:
str = color0[2]
break;
case 1:
str = color1[2]
break;
case 2:
str = color2[2]
break;
case 3:
str = color3[2]
break;
default:
str = color3[2]
}
return str
}
option = {
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true,
},
xAxis: [
{
data: Arr.map(item => item.name),
axisTick: {
show: false,
},
axisLine: {
show: false,
},
axisLabel: {
margin: 30,
fontSize: 16,
color: '#707FB3',
},
},
],
yAxis: {
splitLine: {
show: false,
},
axisTick: {
show: false,
},
axisLine: {
show: false,
},
axisLabel: {
show: false,
},
},
series: [
{
name: '', // 下—--—头部y样式
type: 'pictorialBar',
symbolSize: [54, 15],
symbolOffset: [0, -6],
z: 12,
data: Arr.map((item, index) => {
return { // 第二个下-----------------------------------------------------------------------------------头部
name: '',
value: item.value,
symbolPosition: 'end',
itemStyle: {
normal: {
color: colorFive(index),
},
},
}
})
},
{
name: '',
type: 'pictorialBar',//底圈圆
symbolSize: [54, 15],
symbolOffset: [0, 10],
z: 12,
data: Arr.map((item, index) => {
return {
name: '',
value: item.value,
itemStyle: {
normal: {
color: colorOne(index),
},
},
}
})
}, {
name: '', //底外圈圆
type: 'pictorialBar',
symbolSize: [70, 25],
symbolOffset: [0, 24],
z: 11,
data: Arr.map((item, index) => {
return {
name: '',
value: item.value,
itemStyle: {
normal: {
color: 'transparent',
borderColor: color0[5],
borderWidth: 2,
},
},
}
})
},
{
name: '邮件营销',
type: 'bar',
barWidth: 54,
barGap: '-100%',
// itemStyle: {
// color: window.echarts.graphic.LinearGradient(0, 0, 0, 1, [
// {
// offset: 0,
// color: 'rgba(55,255,249,1)',
// },
// {
// offset: 1,
// color: 'rgba(0,222,215,0.2)',
// },
// ]),
// },
label: {
// 下 文字标签
normal: {
show: false,
position: 'top',
distance: -70,
textStyle: {
color: '#fff',
fontSize: 40,
},
},
},
data: Arr.map((item, index) => {
return {
name: '', // 下 ----柱状渐变
value: item.value,
itemStyle: {
normal: {
color: {
x: 0,
y: 0,
x2: 0,
y2: 1,
type: 'linear',
global: false,
colorStops: [
{
offset: 0,
color: colorTwo(index), //上
},
{
offset: 1,
color: colorThree(index), //下
},
],
},
},
}
}
})
},
{
type: 'bar',
barWidth: 54,
barGap: '-100%',
stack: '广告',
itemStyle: {
color: 'transparent',
},
data: Arr.map((item) => item.value)
},
{
name: '', // 上-----------------------------------------------------------------头部颜色样式
type: 'pictorialBar',
symbolSize: [54, 15],
symbolOffset: [0, -10],
z: 12,
data: Arr.map((item, index) => {
return {
name: '',
value: item.value + 19.5, // 上部-------高度
symbolPosition: 'end',
itemStyle: {
normal: {
color: color(index),
},
},
}
})
},
{
name: '', // 上连下----底部颜色样式
type: 'pictorialBar',
symbolSize: [54, 25],
symbolOffset: [0, -20],
z: 12,
},
{
name: '联盟广告',
type: 'bar',
barWidth: 54,
barGap: '-100%',
stack: '广告',
// itemStyle: {
// color: window.echarts.graphic.LinearGradient(0, 0, 0, 1, [
// {
// offset: 1,
// color: '#b10006',
// },
// {
// offset: 1,
// color: '#815041',
// },
// ]),
// },
label: {
normal: {
show: true,
position: 'top',
distance: 5,
textStyle: {
color: '#fff',
fontSize: 18,
},
},
},
data: Arr.map((item, index) => {
return {
name: item.name,
value: '20', // 上面高度
trueVal: '20',
itemStyle: {
normal: {
color: {
x: 0,
y: 0,
x2: 0,
y2: 1,
type: 'linear',
global: false,
colorStops: [
{
offset: 1,
color: colorFour(index),
},
{
offset: 1,
color: colorFour(index),
},
],
},
},
},
}
})
},
],
};