:::info 纯JavaScript的图标库底层依赖于Canvas类库的Rzender(一个二维渲染引擎) :::
工具:
https://echarts.apache.org/examples/zh/index.html#chart-type-pie
常用说明
/*1.引入JS库*//*2.初始化*/var myChart = echarts.init(document.getElementById('main'),'使用主题');/*3.写入参数*/myChart.setOption({backgroundColor: 'rgba(0,0,0,0)', // (选填)全图默认背景color: ['#ff7f50', '#87cefa'], // (选填)默认色板title: {}, // 标题:参数如下2legend: {}, // 图例:参数如下3tooltip: {}, // 提示:参数如下6// X轴xAxis: {},yAxis: {}, // Y轴series: [//折线图{barWidth: 26, // 柱形宽度(折线图无)name: '', // legend对应的名称type: 'bar', // 图形类型stack: 'TUE', // 若多个值一样,则堆叠到一起data: [1, 1, 1, 11], // 数值smooth: true, // 线条平滑展示,折线图起作用areaStyle: {}, // 面积填充,折线图有效type: 'line',//类型color: [], //自己的调色盘data: [], //显示数据xAxisIndex: 1, //对应X轴索引默认1YAxisIndex: 1, //对应Y轴索引默认1// 鼠标悬浮时高亮样式。emphasis: {focus: "series", // 把另一个遮盖itemStyle: {color: 'blue'}, // 高亮时点的颜色。label: {show: true, // 高亮时标签的文字。formatter: 'This is a emphasis label.'}},},]);/*设置颜色渐变*/color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ offset: 0, color: '#83bff6' },{ offset: 0.5, color: '#188df0' },{ offset: 1, color: '#188df0' }])/*替换修改输出*/formatter: '{a} <br/>{b} : {c} ({d}%)'/*点击事件*/myChart.on('click', function(params) {// 控制台打印数据的名称console.log(params.name);});/*设置统计图大小*/myChart.resize({//width: 800,//height: 400});echartsInstance.clear//移除统计图echartsInstance.dispose//销毁统计图标,释放内存
1.坐标轴:xAxis、yAxis
xAxis:{type: 'category', //设置分类轴name:'坐标轴名称',show:true, //是否显示data:[], //显示内容boundaryGap:boolean,array //两侧是否留空白axisLabel:{ //X轴刻度标签show: boolean //是否显示刻度标签color:red //文字颜色interval: 'auto', //x坐标数据间距 自动align: 'center', //x轴文字距中线对齐rotate: -45 , //x轴文字旋转axisLine:{ //刻度线show: //是否显示lineStyle:{ color:'颜色'} //刻度线样式}}},yAxis: {splitNumber: 3, //y轴刻度线个数splitLine: {show: true,// 改变轴线颜色lineStyle: {// 使用深浅的间隔色color: ['rgba(238, 238, 238, 1)'],type: 'dashed'}}},
2.标题:title
title: {text:'标题', //标题文字subtext:'辅标题', //辅标题文字textStyle: {}, //文字:大小|粗细|颜色subtextStyle: {}, //同上x: 'left', // 水平安放位置,默认为左对齐,可选为:'center' ¦ 'left' ¦ 'right'¦ {number}(x坐标,单位px)y: 'top', // 垂直安放位置,默认为全图顶端,可选为:'top' ¦ 'bottom' ¦ 'center'¦ {number}(y坐标,单位px)backgroundColor: 'rgba(0,0,0,0)', // 标题背景色borderColor: '#ccc', // 标题边框颜色borderWidth: 0, // 标题边框线宽,单位px,默认为0(无边框)padding: 5, // 标题内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距,同cssitemGap: 10, // 主副标题纵向间隔,单位px,默认为10,}
3.图例:legend
// 图例legend: {data:[], // 数据textStyle: {} // 文字:大小|粗细|颜色backgroundColor: 'rgba(0,0,0,0)', // 背景:orient: 'horizontal', // 布局方式,默认为水平布局,可选为:'horizontal' ¦ 'vertical'x: 'center', // 水平安放位置,默认为全图居中,可选为:'center' ¦ 'left' ¦ 'right'¦ {number}(x坐标,单位px)y: 'top', // 垂直安放位置,默认为全图顶端,可选为:'top' ¦ 'bottom' ¦ 'center'¦ {number}(y坐标,单位px)borderColor: '#ccc', // 图例边框颜色borderWidth: 0, // 图例边框线宽,单位px,默认为0(无边框)padding: 5, // 图例内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距,同cssitemGap: 10, // 各个item之间的间隔,单位px,默认为10,横向布局时为水平间隔,纵向布局时为纵向间隔itemWidth: 20, // 图例图形宽度itemHeight: 14, // 图例图形高度}
4.值域:dataRange
// 值域dataRange: {orient: 'vertical', // 布局方式,默认为垂直布局,可选为:'horizontal' ¦ 'vertical'x: 'left', // 水平安放位置,默认为全图左对齐,可选为:'center' ¦ 'left' ¦ 'right'¦ {number}(x坐标,单位px)y: 'bottom', // 垂直安放位置,默认为全图底部,可选为:'top' ¦ 'bottom' ¦ 'center'¦ {number}(y坐标,单位px)backgroundColor: 'rgba(0,0,0,0)', // 背景颜色borderColor: '#ccc', // 值域边框颜色borderWidth: 0, // 值域边框线宽,单位px,默认为0(无边框)padding: 5, // 值域内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距,同cssitemGap: 10, // 各个item之间的间隔,单位px,默认为10,横向布局时为水平间隔,纵向布局时为纵向间隔itemWidth: 20, // 值域图形宽度,线性渐变水平布局宽度为该值 * 10itemHeight: 14, // 值域图形高度,线性渐变垂直布局高度为该值 * 10splitNumber: 5, // 分割段数,默认为5,为0时为线性渐变color:['#1e90ff','#f0ffff'], // 颜色text:['高','低'], // 文本,默认为数值文本textStyle: {} // 文字:大小|粗细|颜色},
5.工具:toolbox
toolbox: {orient: 'horizontal', // 布局方式,默认为水平布局,可选为:'horizontal' ¦ 'vertical'x: 'right', // 水平安放位置,默认为全图右对齐,可选为:'center' ¦ 'left' ¦ 'right'¦ {number}(x坐标,单位px)y: 'top', // 垂直安放位置,默认为全图顶端,可选为:'top' ¦ 'bottom' ¦ 'center'¦ {number}(y坐标,单位px)color : ['#1e90ff','#22bb22','#4b0082','#d2691e'],backgroundColor: 'rgba(0,0,0,0)', // 工具箱背景颜色borderColor: '#ccc', // 工具箱边框颜色borderWidth: 0, // 工具箱边框线宽,单位px,默认为0(无边框)padding: 5, // 工具箱内边距,单位px,默认各方向内边距为5, 接受数组分别设定上右下左边距,同cssitemGap: 10, // 各个item之间的间隔,单位px,默认为10,横向布局时为水平间隔,纵向布局时为纵向间隔itemSize: 16, // 工具箱图形宽度feature:[] // 选择的工具featureImageIcon : {}, // 自定义图片iconfeatureTitle : {mark : '辅助线开关',markUndo : '删除辅助线',markClear : '清空辅助线',dataZoom : '区域缩放',dataZoomReset : '区域缩放后退',dataView : '数据视图',lineChart : '折线图切换',barChart : '柱形图切换',restore : '还原',saveAsImage : '保存为图片'}},
6.提示:tooltip
tooltip: {trigger: 'item', // 触发类型,默认数据触发,见下图,可选为:'item' ¦ 'axis'showDelay: 20, // 显示延迟,添加显示延迟可以避免频繁切换,单位mshideDelay: 100, // 隐藏延迟,单位mstransitionDuration : 0.4, // 动画变换时间,单位sbackgroundColor: 'rgba(0,0,0,0.7)', // 提示背景颜色,默认为透明度为0.7的黑色borderColor: '#333', // 提示边框颜色borderRadius: 4, // 提示边框圆角,单位px,默认为4borderWidth: 0, // 提示边框线宽,单位px,默认为0(无边框)padding: 5, // 提示内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距,同cssaxisPointer : { // 坐标轴指示器,坐标轴触发有效type : 'line', // 默认为直线,可选为:'line' | 'shadow'lineStyle : { // 直线指示器样式设置color: '#48b',width: 2,type: 'solid'},shadowStyle : { // 阴影指示器样式设置width: 'auto', // 阴影大小color: 'rgba(150,150,150,0.3)' // 阴影颜色}},textStyle: {color: '#fff'}},
7.网格:grid-调整大小位置
grid: {show:true,//是否显示直角坐标系left: "5%",//左top: "5%",//上right: "5%",//右bottom: "5%",//下backgroundColor: 'rgba(0,0,0,0)',//背景颜色borderWidth: 1,//边框宽度borderColor: '#ccc'//边框颜色containLabel: true,//计算容器宽度宽度到标签还是到刻度线},
8.类目轴:categoryAxis
categoryAxis: {position: 'bottom', // 位置nameLocation: 'end', // 坐标轴名字位置,支持'start' | 'end'boundaryGap: true, // 类目起始和结束两端空白策略axisLine: { // 坐标轴线show: true, // 默认显示,属性show控制显示与否lineStyle: { // 属性lineStyle控制线条样式color: '#48b',width: 2,type: 'solid'}},axisTick: { // 坐标轴小标记show: true, // 属性show控制显示与否,默认不显示interval: 'auto',// onGap: null,inside : false, // 控制小标记是否在grid里length :5, // 属性length控制线长lineStyle: { // 属性lineStyle控制线条样式color: '#333',width: 1}},axisLabel: { // 坐标轴文本标签,详见axis.axisLabelshow: true,interval: 'auto',rotate: 0,margin: 8,// formatter: null,textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLEcolor: '#333'}},splitLine: { // 分隔线show: true, // 默认显示,属性show控制显示与否// onGap: null,lineStyle: { // 属性lineStyle(详见lineStyle)控制线条样式color: ['#ccc'],width: 1,type: 'solid'}},splitArea: { // 分隔区域show: false, // 默认不显示,属性show控制显示与否// onGap: null,areaStyle: { // 属性areaStyle(详见areaStyle)控制区域样式color: ['rgba(250,250,250,0.3)','rgba(200,200,200,0.3)']}}},
9.数值型坐标轴默认参数:valueAxis
valueAxis: {position: 'left', // 位置nameLocation: 'end', // 坐标轴名字位置,支持'start' | 'end'nameTextStyle: {}, // 坐标轴文字样式,默认取全局样式boundaryGap: [0, 0], // 数值起始和结束两端空白策略splitNumber: 5, // 分割段数,默认为5axisLine: { // 坐标轴线show: true, // 默认显示,属性show控制显示与否lineStyle: { // 属性lineStyle控制线条样式color: '#48b',width: 2,type: 'solid'}},axisTick: { // 坐标轴小标记show: false, // 属性show控制显示与否,默认不显示inside : false, // 控制小标记是否在grid里length :5, // 属性length控制线长lineStyle: { // 属性lineStyle控制线条样式color: '#333',width: 1}},axisLabel: { // 坐标轴文本标签,详见axis.axisLabelshow: true,rotate: 0,margin: 8,// formatter: null,textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLEcolor: '#333'}},splitLine: { // 分隔线show: true, // 默认显示,属性show控制显示与否lineStyle: { // 属性lineStyle(详见lineStyle)控制线条样式color: ['#ccc'],width: 1,type: 'solid'}},splitArea: { // 分隔区域show: false, // 默认不显示,属性show控制显示与否areaStyle: { // 属性areaStyle(详见areaStyle)控制区域样式color: ['rgba(250,250,250,0.3)','rgba(200,200,200,0.3)']}}},polar : {center : ['50%', '50%'], // 默认全局居中radius : '75%',startAngle : 90,splitNumber : 5,name : {show: true,textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLEcolor: '#333'}},axisLine: { // 坐标轴线show: true, // 默认显示,属性show控制显示与否lineStyle: { // 属性lineStyle控制线条样式color: '#ccc',width: 1,type: 'solid'}},axisLabel: { // 坐标轴文本标签,详见axis.axisLabelshow: false,textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLEcolor: '#333'}},splitArea : {show : true,areaStyle : {color: ['rgba(250,250,250,0.3)','rgba(200,200,200,0.3)']}},splitLine : {show : true,lineStyle : {width : 1,color : '#ccc'}}},
10.区域放大控制器:dataZoom
dataZoom: {orient: 'horizontal', // 布局方式,默认为水平布局,可选为:'horizontal' ¦ 'vertical'x: {number}, // 水平安放位置,默认为根据grid参数适配,可选为: {number}(x坐标,单位px)y: {number}, // 垂直安放位置,默认为根据grid参数适配,可选为:{number}(y坐标,单位px)width: {number}, // 指定宽度,横向布局时默认为根据grid参数适配height: {number}, // 指定高度,纵向布局时默认为根据grid参数适配backgroundColor: 'rgba(0,0,0,0)', // 背景颜色dataBackgroundColor: '#eee', // 数据背景颜色fillerColor: 'rgba(144,197,237,0.2)', // 填充颜色handleColor: 'rgba(70,130,180,0.8)' // 手柄颜色},
**图形属性说明*
11.柱状图: bar
bar: {barMinHeight: 0, // 最小高度改为0barWidth: null, // 默认自适应barGap: '30%', // 柱间距离,默认为柱形宽度的30%,可设固定值barCategoryGap : '20%', // 类目间柱形距离,默认为类目间距的20%,可设固定值itemStyle: {normal: {color: '各异',barBorderColor: '#fff', // 柱条边线barBorderRadius: 0, // 柱条边线圆角,单位px,默认为0barBorderWidth: 1, // 柱条边线线宽,单位px,默认为1label: {show: falseposition: 默认自适应,水平布局为'top',垂直布局为'right',可选为'inside'|'left'|'right'|'top'|'bottom'textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE}},emphasis: {color: '各异',barBorderColor: 'rgba(0,0,0,0)', // 柱条边线barBorderRadius: 0, // 柱条边线圆角,单位px,默认为0barBorderWidth: 1, // 柱条边线线宽,单位px,默认为1label: {show: falseposition: 默认自适应,水平布局为'top',垂直布局为'right',可选为'inside'|'left'|'right'|'top'|'bottom'textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE}}}},
12.折线图:line
line: {itemStyle: {normal: {color: 各异,label: {show: falseposition: 默认自适应,水平布局为'top',垂直布局为'right',可选为 'inside'|'left'|'right'|'top'|'bottom'textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE},lineStyle: {width: 2,type: 'solid',shadowColor : 'rgba(0,0,0,0)', //默认透明shadowBlur: 5,shadowOffsetX: 3,shadowOffsetY: 3}},emphasis: {color: 各异,label: {show: falseposition: 默认自适应,水平布局为'top',垂直布局为'right',可选为'inside'|'left'|'right'|'top'|'bottom'textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE}}},smooth : false, //是否圆滑曲线symbol: null, // 拐点图形类型symbolSize: 2, // 拐点图形大小symbolRotate : null, // 拐点图形旋转控制showAllSymbol: false // 标志图形默认只有主轴显示(随主轴标签间隔隐藏策略)},
13.K线:K
k: {barWidth : null // 默认自适应barMaxWidth : null // 默认自适应itemStyle: {normal: {color: '#fff', // 阳线填充颜色color0: '#00aa11', // 阴线填充颜色lineStyle: {width: 1,color: '#ff3200', // 阳线边框颜色color0: '#00aa11' // 阴线边框颜色}},emphasis: {color: 各异,color0: 各异}}},
14.饼图
pie: {center : ['50%', '50%'], // 默认全局居中radius : [0, '75%'],clockWise : false, // 默认逆时针startAngle: 90,minAngle: 0, // 最小角度改为0selectedOffset: 10, // 选中是扇区偏移量itemStyle: {normal: {// color: 各异,borderColor: '#fff',borderWidth: 1,label: {show: true,position: 'outer'// textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE},labelLine: {show: true,length: 20,lineStyle: {// color: 各异,width: 1,type: 'solid'}}},emphasis: {// color: 各异,borderColor: 'rgba(0,0,0,0)',borderWidth: 1,label: {show: false// position: 'outer'// textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE},labelLine: {show: false,length: 20,lineStyle: {// color: 各异,width: 1,type: 'solid'}}}}},
15.地图
map: {mapType: 'china', // 各省的mapType暂时都用中文mapLocation: {x : 'center',y : 'center'// width // 自适应// height // 自适应},showLegendSymbol : true, // 显示图例颜色标识(系列标识的小圆点),存在legend时生效itemStyle: {normal: {// color: 各异,borderColor: '#fff',borderWidth: 1,areaStyle: {color: '#ccc'//rgba(135,206,250,0.8)},label: {show: false,textStyle: {color: 'rgba(139,69,19,1)'}}},emphasis: { // 也是选中样式// color: 各异,borderColor: 'rgba(0,0,0,0)',borderWidth: 1,areaStyle: {color: 'rgba(255,215,0,0.8)'},label: {show: false,textStyle: {color: 'rgba(139,69,19,1)'}}}}},
16.散点图默认参数:scatter
scatter: {//symbol: null, // 图形类型symbolSize: 4, // 图形大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2//symbolRotate : null, // 图形旋转控制large: false, // 大规模散点图largeThreshold: 2000,// 大规模阀值,large为true且数据量>largeThreshold才启用大规模模式itemStyle: {normal: {// color: 各异,label: {show: false// position: 默认自适应,水平布局为'top',垂直布局为'right',可选为// 'inside'|'left'|'right'|'top'|'bottom'// textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE}},emphasis: {// color: '各异'label: {show: false// position: 默认自适应,水平布局为'top',垂直布局为'right',可选为// 'inside'|'left'|'right'|'top'|'bottom'// textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE}}}},
17.雷达图默认参数:radar
radar : {itemStyle: {normal: {// color: 各异,label: {show: false},lineStyle: {width: 2,type: 'solid'}},emphasis: {// color: 各异,label: {show: false}}},//symbol: null, // 拐点图形类型symbolSize: 2 // 可计算特性参数,空数据拖拽提示图形大小//symbolRotate : null, // 图形旋转控制},
18.默认标志图形类型列表:symbolList
symbolList : ['circle', 'rectangle', 'triangle', 'diamond','emptyCircle', 'emptyRectangle', 'emptyTriangle', 'emptyDiamond'],
19.可计算特性配置,孤岛,提示颜色:calculable
calculable: false, // 默认关闭可计算特性calculableColor: 'rgba(255,165,0,0.6)', // 拖拽提示边框颜色calculableHolderColor: '#ccc', // 可计算占位提示颜色nameConnector: ' & ',valueConnector: ' : ',animation: true,animationThreshold: 2500, // 动画元素阀值,产生的图形原素超过2500不出动画addDataAnimation: true, // 动态数据接口是否开启动画效果animationDuration: 2000,animationEasing: 'ExponentialOut' //BounceOut
20.其他
force : {// 数据map到圆的半径的最小值和最大值minRadius : 10,maxRadius : 20,density : 1.0,attractiveness : 1.0,// 初始化的随机大小位置initSize : 300,// 向心力因子,越大向心力越大centripetal : 1,// 冷却因子coolDown : 0.99,// 分类里如果有样式会覆盖节点默认样式itemStyle: {normal: {// color: 各异,label: {show: false// textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE},nodeStyle : {brushType : 'both',color : '#f08c2e',strokeColor : '#5182ab'},linkStyle : {strokeColor : '#5182ab'}},emphasis: {// color: 各异,label: {show: false// textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE},nodeStyle : {},linkStyle : {}}}},chord : {radius : ['65%', '75%'],center : ['50%', '50%'],padding : 2,sort : 'none', // can be 'none', 'ascending', 'descending'sortSub : 'none', // can be 'none', 'ascending', 'descending'startAngle : 90,clockWise : false,showScale : false,showScaleText : false,itemStyle : {normal : {label : {show : true// textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE},lineStyle : {width : 0,color : '#000'},chordStyle : {lineStyle : {width : 1,color : '#666'}}},emphasis : {lineStyle : {width : 0,color : '#000'},chordStyle : {lineStyle : {width : 2,color : '#333'}}}}},island: {r: 15,calculateStep: 0.1 // 滚轮可计算步长 0.1 = 10%},markPoint : {symbol: 'pin', // 标注类型symbolSize: 10, // 标注大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2//symbolRotate : null, // 标注旋转控制itemStyle: {normal: {// color: 各异,// borderColor: 各异, // 标注边线颜色,优先于colorborderWidth: 2, // 标注边线线宽,单位px,默认为1label: {show: true,position: 'inside' // 可选为'left'|'right'|'top'|'bottom'// textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE}},emphasis: {// color: 各异label: {show: true// position: 'inside' // 'left'|'right'|'top'|'bottom'// textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE}}}},markLine : {// 标线起始和结束的symbol介绍类型,如果都一样,可以直接传stringsymbol: ['circle', 'arrow'],// 标线起始和结束的symbol大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2symbolSize: [2, 4],// 标线起始和结束的symbol旋转控制//symbolRotate : null,itemStyle: {normal: {// color: 各异, // 标线主色,线色,symbol主色// borderColor: 随color, // 标线symbol边框颜色,优先于colorborderWidth: 2, // 标线symbol边框线宽,单位px,默认为2label: {show: false,// 可选为 'start'|'end'|'left'|'right'|'top'|'bottom'position: 'inside',textStyle: { // 默认使用全局文本样式,详见TEXTSTYLEcolor: '#333'}},lineStyle: {// color: 随borderColor, // 主色,线色,优先级高于borderColor和color// width: 随borderWidth, // 优先于borderWidthtype: 'solid',shadowColor : 'rgba(0,0,0,0)', //默认透明shadowBlur: 5,shadowOffsetX: 3,shadowOffsetY: 3}},emphasis: {// color: 各异label: {show: false// position: 'inside' // 'left'|'right'|'top'|'bottom'// textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE},lineStyle : {}}}},textStyle: {decoration: 'none',fontFamily: 'Arial, Verdana, sans-serif',fontFamily2: '微软雅黑', // IE8- 字体模糊并且不支持不同字体混排,额外指定一份fontSize: 12,fontStyle: 'normal',fontWeight: 'normal'},
