配置项如下
/*
最近本人发现了配置更简单,更容易理解,更容易修改,bug更少的写法
所以更新了原图表,这里分享给大家
不知道用以前写法的小伙伴有没有发现
1.项目中如果数据为0的话,hover的时候用以前的写法文字会将圆点盖住...
2.鼠标放上的时候,x轴Pointer文字可能会有些轻微的向上或向下的移动...
3.文字下划线和文字见的距离过小,有的时候不是很符合需求...
以下旧写法我都注释了哈,现在生效的是新写法,新写法我也解释说明了哦
*/
/*
这个注释建议看完代码再看哦
1.如果axisLabel和axisPointer的margin相同,则padding[0]必须等于0
2.实现效果axisLabel和AxisPointer的字体大小必须相同
3.此配置实现效果axisLabel和axisPointer的margin必须相同
其他配置同样可以实现效果,如lineHeight等
这是我整理、删除多余相同配置项后总结出的,使用方便,便于封装复用
适用于大多数图表的配置
更复杂的样式还是要参考配置文档的哦???
*/
const colorList = ["#9E87FF", '#73DDFF', '#fe9a8b', '#F56948', '#9E87FF']
option = {
backgroundColor: '#fff',
title: {
text: '全国6月销售统计',
textStyle: {
fontSize: 12,
fontWeight: 400
},
left: 'center',
top: '5%'
},
legend: {
icon: 'circle',
bottom: '0%',
right: 'center',
itemWidth: 6,
itemGap: 20,
textStyle: {
color: '#556677'
}
},
tooltip: {
trigger: 'axis',
axisPointer: {
label: {
show: true,
backgroundColor: '#fff',
color: '#556677',
borderColor: 'rgba(0,0,0,0)',
shadowColor: 'rgba(0,0,0,0)',
shadowOffsetY: 0
},
lineStyle: {
width: 0
}
},
backgroundColor: '#fff',
textStyle: {
color: '#5c6c7c'
},
padding: [10, 10],
extraCssText: 'box-shadow: 1px 0 2px 0 rgba(163,163,163,0.5)'
},
grid: {
top: '15%'
},
xAxis: [{
type: 'category',
data: ['北京', '上海', '广州', '深圳', '香港', '澳门', '台湾'],
axisLine: {
show:true,
lineStyle: {
color: '#f4f4f4'
}
},
splitLine:{
show:true,
color:'#f0f0f0'
},
axisTick: {
show: true,
alignWithLabel: true,
},
axisLabel: {
interval: 0,
textStyle: {
color: '#556677'
},
// 默认x轴字体大小
fontSize: 12,
// margin:文字到x轴的距离
margin: 15,
align:'center'
},
axisPointer: {
label: {
// padding: [11, 5, 7],
padding: [0, 0, 10, 0],
/*
除了padding[0]建议必须是0之外,其他三项可随意设置
和CSSpadding相同,[上,右,下,左]
如果需要下边线超出文字,设左右padding即可,注:左右padding最好相同
padding[2]的10:
10 = 文字距下边线的距离 + 下边线的宽度
如:UI图中文字距下边线距离为7 下边线宽度为2
则padding: [0, 0, 9, 0]
*/
// 这里的margin和axisLabel的margin要一致!
margin: 15,
// 移入时的字体大小
fontSize: 12,
backgroundColor: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0,
color: '#fff' // 0% 处的颜色
}, {
// offset: 0.9,
offset: 0.86,
/*
0.86 = (文字 + 文字距下边线的距离)/(文字 + 文字距下边线的距离 + 下边线的宽度)
*/
color: '#fff' // 0% 处的颜色
}, {
offset: 0.86,
color: '#33c0cd' // 0% 处的颜色
}, {
offset: 1,
color: '#33c0cd' // 100% 处的颜色
}],
global: false // 缺省为 false
}
}
},
boundaryGap: false
}],
yAxis: [{
type: 'value',
axisTick: {
show: false
},
axisLine: {
show: true,
lineStyle: {
color: '#DCE2E8'
}
},
axisLabel: {
textStyle: {
color: '#556677'
}
},
// 分割线
splitLine: {
lineStyle: {
type: "dashed",
color: "#E9E9E9"
}
}
}, {
type: 'value',
// position: 'right',
axisTick: {
show: false
},
axisLabel: {
textStyle: {
color: '#556677'
},
formatter: '{value}'
},
axisLine: {
show: false,
lineStyle: {
color: '#DCE2E8'
}
},
splitLine: {
show: false
}
}],
series: [{
name: 'Adidas',
type: 'line',
data: [10, 10, 30, 12, 15, 3, 7],
symbolSize: 1,
symbol: 'circle',
smooth: true,
yAxisIndex: 0,
showSymbol: false,
lineStyle: {
width: 2,
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
offset: 0,
color: '#9effff'
},
{
offset: 1,
color: '#9E87FF'
}
]),
},
itemStyle: {
normal: {
color: colorList[0],
borderColor: colorList[0]
}
}
}, {
name: 'Nike',
type: 'line',
data: [5, 12, 11, 14, 25, 16, 10],
symbolSize: 1,
symbol: 'circle',
smooth: true,
yAxisIndex: 0,
showSymbol: false,
lineStyle: {
width: 2,
color: new echarts.graphic.LinearGradient(1, 1, 0, 0, [{
offset: 0,
color: '#73DD39'
},
{
offset: 1,
color: '#73DDFF'
}
]),
},
itemStyle: {
normal: {
color: colorList[1],
borderColor: colorList[1]
}
}
},
{
name: '老北京布鞋',
type: 'line',
data: [150, 120, 170, 140, 500, 160, 110],
symbolSize: 1,
yAxisIndex: 1,
symbol: 'circle',
smooth: true,
showSymbol: false,
lineStyle: {
width: 2,
color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [{
offset: 0,
color: '#fe9a'
},
{
offset: 1,
color: '#fe9a8b'
}
]),
},
itemStyle: {
normal: {
color: colorList[2],
borderColor: colorList[2]
}
}
},
{
name: '老南京布鞋',
type: 'line',
data: [250, 220, 270, 240, 500, 260, 210],
symbolSize: 1,
yAxisIndex: 1,
symbol: 'circle',
smooth: true,
showSymbol: false,
lineStyle: {
width: 2,
color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [{
offset: 0,
color: '#fe9a'
},
{
offset: 1,
color: '#fe9a8b'
}
]),
},
itemStyle: {
normal: {
color: colorList[2],
borderColor: colorList[2]
}
}
}
]
};