前言:最近项目要大量使用echarts图表,为保证项目进度能够顺利进行,研究一下吧。
Echarts图表主要通过传入的option对象来映射图表。
官方示例如下:
option = {
// 图例
legend: {
// data数组里面的字段要和series数组里面的name对应
// 源码应该是拿下标的字段和series的name属性值做对比
data: ['秀儿','大狗']
},
// X轴,
xAxis: {
/**
type的注意事项
1. category是类目轴.竖着放X轴设为类目轴,横着放则y轴为类目轴,其他值value用于连续数据,time是时间
2. 如果xAxis.data有数据,type就算不写也会值默认改成'category'
3. 按照推理,如果yAxis.data有数据不就是两个类目轴了吗,那怎么渲染
经过试验,如果x和y轴对象都有data属性是错误渲染。。
所以:x和y轴只有一个类目轴,如果x轴是类目轴,yAxis.type值就应该是value。反之亦然
**/
type: 'category',
data: ['语文', '数学', '英语', '体育', '化学', '历史']
},
// y轴
yAxis: {
// category是类目轴,value用于连续数据,time是时间
type: 'category',
data: ['语文', '数学', '英语', '体育', '化学', '历史']
},
// 系列列表,
/**
series的注意事项
1.type:通过type来决定图表类型line bar pie
2.name:每个对象的name尽量写上,和类目轴的顺序保持一致,另外通用配置legend也会用到
3.data:其实就是二维坐标系中非类目轴的值
4.series数组中每一项都对应一个系列的数据
series.xxx.markPoint 图表标注
series.xxx.markLine 图表标线
serises.xxx.label 每个柱 数值显示
serises.xxx.barWidth 柱体的宽度
serises.xxx.emphasis 高亮的图形样式和标签样式/或者说鼠标悬停时
serises.xxx.itemStyle 每根柱的样式
serises.xxx.grid 控制边距
**/
series: [
{
// 数据
name: '秀儿',
type: 'bar',
data: [5, 20, 36, 10, 10, 20],
//
// 每个柱数值显示
label: {
// 显示开关
show :true,
// 旋转角度 从 -90 度到 90 度。正值是逆时针。直接写数字
rotate: 20,
/**
位置(值比较多用到再说吧)三种
1.语义声明=> top left等等
2.像素值=> position: [10, 10],
3.百分比=> position: ['50%', '50%']
**/
position: 'top'
},
// 每根柱的样式
itemStyle:{
color: (params)=>{
let colorList = ['red'];
return colorList[params.dataIndex] || 'red';
}
},
// 控制边距
grid: {
left: '0%',
right:'10%',
containLabel: true,
},
// 最大最小值的写法
markPoint: {
data:[
{
type: 'max', name: '最大值'
},
{
type: 'min', name: '最小值'
},
]
},
// 平均值的写法
markLine: {
data: [
{
type: 'average', name: '平均值'
}
]
}
},
{
name: '大狗',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
}
]
};