baozhengrui

导航

echarts 各个参数

初始化图表

<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
// 引入 echarts 核心模块,核心模块提供了 echarts 使用必须要的接口。
import * as echarts from 'echarts/core';
// 可以在这里定义窗口大小
var myChart = echarts.init(document.getElementById('main'), null, {
    width: 600,
    height: 400
  });
// 在div中定义大小
  var myChart = echarts.init(document.getElementById('main'));
  myChart.setOption(option)


// 自适应窗口大小
  // 方法一

 window.onresize = function () {
         myChart.resize();
    };

// 方法二
    window.addEventListener('resize', () => {
        myChart.resize();
    })
</script>

echarts通用配置

通用配置:指的是任何一种类型的图表都可以使用的配置。

1.通用配置title

(1)文字样式:textStyle

(2)标题边框:borderWidth、borderColor、borderRadius

(3)标题位置:left、top、right、bottom


title: {
    show: true, //是否显示
  text: '期末语文考试成绩',  // 标题文字内容
    link:'http://baidu.com', // 标题的超链接
    target:'blank', // 指定窗口打开主标题超链接  'self' 当前窗口打开  'blank' 新窗口打开

  // 标题文字
  textStyle: { // 标题文字样式
    color: 'red',  // 标题文字颜色
       fontSize: 12, // 标题文字大小
       lineHeight: 14,  //行高
    fontStyle: 'normal', // 主标题文字字体的风格。  normal italic oblique
       fontWeight: 'bolder', //主标题文字字体的粗细 normal bold bolder lighter 100 | 200 | 300 | 400...
       textBorderColor: '#fff',  // 文字本身的描边颜色。
       textBorderWidth:2, // **文字本身的描边宽度。**
       textBorderType:'solid',// 文字本身的描边类型。'solid' 'dashed' dotted
    // 自 v5.0.0 开始,也可以是 number 或者 number 数组,用以指定线条的 dash array,配合 textBorderDashOffset 可实现更灵活的虚线效果。例如
       // textBorderType: [5, 10],
       // textBorderDashOffset: 5,
      textBorderDashOffset:1, // 用于设置虚线的偏移量,可搭配 textBorderType 指定 dash array 实现灵活的虚线效果。
      textShadowColor: 'transparent' //文字本身的阴影颜色。
      textShadowBlur:12 // 文字本身的阴影长度。
      textShadowOffsetX:12 // 文字本身的阴影 X 偏移。
      textShadowOffsetY:12 // 文字本身的阴影 Y 偏移。
      overflow: 'none' //文字超出宽度是否截断或者换行。配置width时有效  
                'truncate' //截断,并在末尾显示ellipsis配置的文本,默认为...
                'break' //换行
                'breakAll' //换行,跟'break'不同的是,在英语等拉丁文中,'breakAll'还会强制单词内换行
       ellipsis: '...' //在overflow配置为'truncate'的时候,可以通过该属性配置末尾显示的文本。
    }
     // 副标题文ben 
     subtext: '', //副标题文本,支持使用 \n 换行。
     sublink: '', //副标题文本超链接。
     subtarget: 'blank',// 指定窗口打开副标题超链接,可选:'self' 当前窗口打开 'blank' 新窗口打开
     subtextStyle:{
         color: '#aaa',
        fontSize: '12px',
        fontFamily: 'sans-serif',
        align: 'center', //文字水平对齐方式,默认自动。left center right
        verticalAlign:'top',    //文字垂直对齐方式,默认自动。top middle bottom
          ....
      },
      textAlign: 'auto', //整体(包括 text 和 subtext)的水平对齐。auto left right center
      textVerticalAlign:'auto', // 整体(包括 text 和 subtext)的垂直对齐。auto top middle bottom
      triggerEvent:true,//是否触发事件。
      padding: 5, //标题内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距。 padding: [5, 10]
      itemGap: 10,  //主副标题之间的间距。
      zlevel:12, //所有图形的 zlevel 值。zlevel 大的 Canvas 会放在 zlevel 小的 Canvas 的上面
      z: 2,//组件的所有图形的z值。控制图形的前后顺序。z值小的图形会被z值大的图形覆盖。z相比zlevel优先级更低,而且不会创建新的 Canvas。
      left: 'auto' // title 组件离容器左侧的距离。left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,也可以是 'left', 'center', 'right'。****
      top:'auto',  //'top', 'middle', 'bottom'
      bottom:'auto',
      right:'auto',
      backgroundColor: 'transparent' // 标题背景色,默认透明。
      borderColor: '#ccc' // 标题的边框颜色。支持的颜色格式同 backgroundColor。
      borderWidth:1, // 标题的边框线宽。
      borderRadius:5, //圆角半径,单位px,支持传入数组分别指定 4 个圆角半径。 如:borderRadius: [5, 5, 0, 0] //(顺时针左上,右上,右下,左下)

//    图形阴影的模糊大小。该属性配合 shadowColor,shadowOffsetX, shadowOffsetY 一起设置图形的阴影效果。
      shadowColor: 'rgba(0, 0, 0, 0.5)', //阴影颜色。支持的格式同color。注意:此配置项生效的前提是,设置了 show: true。
      shadowBlur: 10, // 图形阴影的模糊大小
      shadowOffsetX:12,//阴影水平方向上的偏移距离。
      shadowOffsetY:12,//阴影垂直方向上的偏移距离。
  // 标题边框
  borderWidth: 5,
  borderRadius: 5, // 标题边框圆角形状
  borderColor: 'black', // 标题边框颜色
  // 标题位置
  left: 50, // 标题位置
  top: 10
},

2.legend图例组件

图例组件展现了不同系列的标记(symbol),颜色和名字。可以通过点击图例控制哪些系列不显示。

legend:{
  id:'',  // 组件id
  type:'plain', // 图例的类型。'plain':普通图例。缺省就是普通图例,'scroll':可滚动翻页的图例。当图例数量较多时可以使用。
  show:true, // 是否显示
  zlevel:12,// 所有图形的 zlevel 值。
  Z:2, //
  left:'auto', // 图例组件离容器左侧的距离。例:20%或者20px或者left\center\right
  top:'auto' , // top middle bottom
  right:'auto' //
  bottom:'auto',
  width:'auto' ,//图例组件的宽度。默认自适应。
  height:'auto', //图例组件的高度。默认自适应。
  orient:'horizontal',// 图例列表的布局朝向 vertical横 horizontal纵
  align:'auto',// 图例标记和文本的对齐
  padding:5,//图例内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距
  itemGap:10, //图例每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。
  itemWidth: 25 , //图例标记的图形宽度
  itemHeight:25, // 图例标记的图形高度。
//图例的图形样式。其属性的取值为 'inherit' 时,表示继承系列中的属性值
  itemStyle:{
    color:inherit,// 图形的颜色。
    borderColor:inherit//图形的描边颜色。支持的颜色格式同 color,不支持回调函数
    borderWidth: auto, //当其值为 "auto" 时,如果系列有 borderWidth 取 2,如果系列没有 borderWidth 则取 0。当其值为 "inherit" 时,始终取系列的 borderWidth。
    borderType: inherit,//描边类型 solid' 'dashed' dotted
    opacity: inherit, //图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。
  },
// 图例图形中线的样式,用于诸如折线图图例横线的样式设置。其属性的取值为 'inherit' 时,表示继承系列中的属性值。
  lineStyle:{
    color: 'inherit',
    width:auto // 线宽
    type:'inherit' // 线的类型 solid dashed dotted
    opacity:1,// 图形透明度
    inactiveColor:'#ddd',//图例关闭时的线条描边颜色
     inactiveBorderColor: '#ccc'  //图例关闭时的描边颜色。
    inactiveBorderWidth: 'auto' // 图例关闭时的描边粗细。
    inactiveWidth:2, // 图例关闭时的线条宽度
    symbolRotate:'inherit' // 图形旋转角度,类型为 number | 'inherit'。如果为 'inherit',表示取系列的 symbolRotate
    formatter:function(name){
      return 'legend ' + name;
    }
  }
//图例的公用文本样式。
  textStyle:{
    color:'#fff' //文字颜色
    fontStyle:'normal'//文字字体风格  italic oblique
    fontWeight:'normal' // bold bolder lighter 100 900
    fontFamily:''//文字的字体演示
    fontSize:'12px'// 文字的字体大小
    lineHeight:12,//行高
    backgroundColor:'transparent'//文字块背景颜色
      //也可以是图片
      :{
          image:'xxxx/xxx.png'
        }
    borderColor:'#FFf'//文字块边框颜色
    borderWidth:12,//文字块边框宽度
    borderType:'solid'//文字块边框类型
    borderRadius:12//文字块的圆角
    padding:[1,2,3,4]//文字块的内边距
    width:12,//文字块宽度
    height:12,//文字块高度
    overflow:'none'//文字超出宽度是否截断或者换行,有width有效,truncate截断,并在末尾显示ellopsis配置文本,默认为...
break 换行 breakAll 换行,强制单词内换行
    ellipssis:'...',
    rich:{}//可以自定义富文本样式。利用富文本样式,可以在标签中做出非常丰富的效果
    例如:{
          label: {
            // 在文本中,可以对部分文本采用 rich 中定义样式。
            // 这里需要在文本中使用标记符号:
            // `{styleName|text content text content}` 标记样式名。
            // 注意,换行仍是使用 '\n'。
            formatter: [
                '{a|这段文本采用样式a}',
                '{b|这段文本采用样式b}这段用默认样式{x|这段用样式x}'
            ].join('\n'),

              rich: {
                  a: {
                      color: 'red',
                      lineHeight: 10
                  },
                  b: {
                      backgroundColor: {
                          image: 'xxx/xxx.jpg'
                      },
                      height: 40
                  },
                  x: {
                      fontSize: 18,
                      fontFamily: 'Microsoft YaHei',
                      borderColor: '#449933',
                      borderRadius: 4
                  },
                  ...
              }
          }

        }
    tooltip:{
       show:true
    },
    icon:'circle'//图例项的 icon。rect roundRect tirangle diamond pin arrow none
    data:[]
    
  }

}

3.grid配置

gird:{
  show:true,
  left:'10%',
  width:'auto' //组件的宽度。默认自适应。
  height:'auto'// 组件的高度。默认自适应
  containLabel:true, //区域是否包含坐标轴的刻度标签。
  backgroundColor: 'transparent' //网格背景色,默认透明
  borderColor: '#ccc' //网格的边框颜色
  borderWidth: 1
}

4.xAxis

直角坐标系 grid 中的 x 轴,一般情况下单个 grid 组件最多只能放上下两个 x 轴,多于两个 x 轴需要通过配置 offset 属性防止同个位置多个 x 轴的重叠.

xAxis:{
  show:true,
  alignTicks:{
    
  },
  position:'top'//x轴的位置  bottom
  type:'category'//坐标轴的类型 value: 数值轴,适用于连续数据 category 类目轴,适用于离散的类目数据 time: 时间轴 log:对数轴
  name:'mingzi' // 坐标轴的名称
  namelocation:'eng'// 坐标轴名称明显的位置 start middle center end
// 坐标轴名称的文字样式。
  nameTextStyle:{
    color:'#fff',// 坐标轴名称的颜色
    fontStyle:'normal',
    fontWeight:'bold',
    fontFamily,
    fontSize,
    align:'center' // 文字水平对齐方式,默认自动。 left right
    verticalAlign:'middle'//文字垂直对齐方式 top bottom
    lineHeight:12//行高
    backgroundColor:'#fff' //文字块背景色。
    borderColor,borderWidth ,borderType,borderRadius
    padding:[12,23,23,21] // 文字块的内边距。[上, 右, 下, 左] 的边距。
    width:12,//文本显示宽度
    height:12,//文本显示高度
    textBorderColor:‘#fff’, // 文字本身的描边颜色。
    textBorderWidth:12, // 文字本身的描边宽度。
    textBorderType: 'solid', //文字本身的描边类型。
    textShadowColor:'transparent', //文字本身的阴影颜色。
    textShadowBlur:12, // 文字本身的阴影长度。
    overflow:'none', // 文字超出宽度是否截断或者换行
  }
  nameGap:15 //坐标轴名称与轴线之间的距离
  nameRotate:12 // 坐标轴名字旋转,角度值。
  //坐标轴名字的截断
  nameTruncate:{
    maxWidth:12, // 截断文本的最大长度,超过此长度会被截断
    ellopsis:'...' // 截断后文字末尾显示的内容。
  },
  inverse:true, // 是否是反向坐标轴。
  boundaryGap:true, //坐标轴两边留白策略,类目轴和非类目轴的设置和表现不一样。
  min:12,//坐标轴刻度最小值
  min:function(value){
    return value.min - 20;
  }
  max:12 //坐标轴刻度最大值。
  max: function (value) {
      return value.max - 20;
  }
  scale:true //

}



5.通用配置tooltip

  tooltip:提示框组件,用于配置鼠标滑过或点击图标时的显示框。

  触发类型:tigger(item、axios)

  触发时机:triggerOn(mouseover、click)

  格式化:formatter(字符串模板、回调函数)


tooltip: {
  // 鼠标移到柱状图上显示具体信息
  // trigger: 'item',// 只能在柱的内部显示
  trigger: 'axis', // 在柱的轴上都可以显示

  // 点击的时候出现柱状图的具体信息
  // triggerOn: "click",
    
    show: true, // 是否显示
    trigger: 'axis', // 触发类型  'item'图形触发:散点图,饼图等无类目轴的图表中使用; 'axis'坐标轴触发;'none':什么都不触发。
    axisPointer: { // 坐标轴指示器配置项。
        type: 'shadow', // 'line' 直线指示器  'shadow' 阴影指示器  'none' 无指示器  'cross' 十字准星指示器。
        axis: 'auto', // 指示器的坐标轴。 
        snap: true, // 坐标轴指示器是否自动吸附到点上
     },
     showContent: true, //是否显示提示框浮层,默认显示。
     triggerOn: 'mouseover', // 触发时机  'mouseover'鼠标移动时触发。'click'鼠标点击时触发。'mousemove|click'同时鼠标移动和点击时触发。
     enterable: false, // 鼠标是否可进入提示框浮层中,默认为false,如需详情内交互,如添加链接,按钮,可设置为 true。
     renderMode: 'html', // 浮层的渲染模式,默认以 'html 即额外的 DOM 节点展示 tooltip;
     backgroundColor: 'rgba(50,50,50,0.7)', // 提示框浮层的背景颜色。
     borderColor: '#333', // 提示框浮层的边框颜色。
     borderWidth: 0, // 提示框浮层的边框宽。
     padding: 5, // 提示框浮层内边距,
     textStyle: { // 提示框浮层的文本样式。
        color: '#fff',
        fontStyle: 'normal',
        fontWeight: 'normal',
        fontFamily: 'sans-serif',
        fontSize: 12,
    },
    extraCssText: 'box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);', // 额外附加到浮层的 css 样式
    confine: false, // 是否将 tooltip 框限制在图表的区域内。
    formatter: '{b}' // 自定义数据
  // 决定提示框的内容
  // formatter:'{b}的成绩是{c}'
  formatter: function (arg) { // arg包含了具体柱状图的信息
    return arg[0].name + "的分数是" + arg[0].data   或者  
       let result = `<p> ${arg.name} 分数是${arg[0].data}</p>`
       return result
  }
},

3.通用配置toolbox

  toolbox:Echarts提供的工具栏。
内置有导出图片、数据视图、动态类型切换、数据区域缩放、重置五个工具

toolbox: {
  feature: {
    saveAsImage: {
           toolbox.show 	boolean 	默认值为true,是否显示工具栏组件
           toolbox.orient 	stirng 	默认值为horizontal,工具栏 icon 的布局朝向。可选项为“horizontal”和“vertical”
           toolbox.itemSize 	number 	默认值为15,工具栏 icon 的大小。
           toolbox.itemGap 	number 	默认值为10,工具栏 icon 每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。
           toolbox.showTitle 	boolean 	默认值为true,是否在鼠标 hover 的时候显示每个工具 icon 的标题。
           toolbox.feature 	Object 	
            // type->保存图片的格式,name->保存文件的名字,backgroundColor->保存图片的背景色,show->是否显示该工具,还有一些别的属性可以自己再使用的时候查询API文档。
              //restore:配置项还原。主要属性是show->是否显示该工具。
        }, // 导出图片按钮
    dataView: {}, // 数据视图按钮数据视图工具,可以展现当前图表所用的数据,编辑后可以动态更新。show->是否显示该工具,readOnly->是否不可编辑,optionToContent->自定义 dataView 展现函数,用以取代默认的 textarea 使用更丰富的数据编辑。可以返回 dom 对象或者 html 字符串,backgroundColor->数据视图浮层背景色。
    restore: {}, // 重置按钮
    dataZoom: {}, // 区域缩放按钮 数据区域缩放。目前只支持直角坐标系的缩放(这里的含义就是柱状体,折线图可以缩放,但是像饼状图就不能缩放)。show->是否显示该工具
    magicType: {
      type: ['bar', 'line'] // 动态图表类型的切换动态类型切换。show->是否显示该工具,type->这是个数组,启用的动态类型,包括'line'(切换为折线图), 'bar'(切换为柱状图), 'stack'(切换为堆叠模式), 'tiled'(切换为平铺模式)
    }
}

5.通用配置legend

  legend:图例,用于筛选系列,需要和series配合使用

  legend中的data是一个数组

  legend中的data的值需要和series数组中某组数据的name值一致


//legend要和series的name保持一致
legend: {
        orient: 'horizontal',   // 图例设置图例的朝向  vertical 垂直显示  horizontal 水平显示
        x:'center', // 设置图例在X轴方向上的位置   取值: left/center/right
        y:'top',   // 在Y轴方向上的位置    取值: top/center/bottom
        backgroundColor: '#fff'  // 图例背景颜色
        borderColor: ‘#fff’ // 图例边框颜色
        borderWidth  // 边框颜色
        padding :  // 内边距
        itemGap: 40, //控制每一项的间距,也就是图例之间的距离  属性值为数值,不带单位
        itemHeight:  6,  // 控制图例图形的高度   属性值为数字,不加单位
        
        textStyle: {  // 图例文字样式
            color: 'red',
            fontSize: '20px',
            fontWeight: 700
        },
        selected:{ // 设置图例的某个选项的数据默认是显示还是隐藏。 属性值:对象,属性值内容:图例上的数据与boolean构成键值对,如果某选项设置为false,那么图标上的数据也会默认不显示,而图例会以灰色样式显示。
          '搜索引擎': false,  // 隐藏
          '联盟广告': false
        }
       


  data: ['语文', '数学']
},
series: [{
  name: '语文',
  type: 'bar',
  data: yDataArr1
}, {
  name: '数学',
  type: 'bar',
  data: yDataArr2
}]

案例 柱状图

option = {
tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'none'
          },
          formatter: function (params) {
            let result = ''
            params.forEach((res) => {
              result += `<p style="margin: 0px 10px; font-size: 12px;">${res.seriesName}<span>&nbsp;:&nbsp;&nbsp;</span>${res.value}</p>`
            })
            return result
          },
          backgroundColor: '#6485A2'
        },
        color: [
          {
            type: 'linear',
            x: 0,
            y: 0,
            x2: 0,
            y2: 1,
            colorStops: [
              { offset: 0, color: '#C7BAF8' }, // 设置颜色渐变  柱状图的颜色
              { offset: 1, color: '#705AE2' }
            ]
          },
          {
            type: 'linear',
            x: 0,
            y: 0,
            x2: 0,
            y2: 1,
            colorStops: [
              { offset: 0, color: '#8AB2FC' }, // 设置颜色渐变
              { offset: 1, color: '#2E5FE4' }
            ]
          },
          {
            type: 'linear',
            x: 0,
            y: 0,
            x2: 0,
            y2: 1,
            colorStops: [
              { offset: 0, color: '#74DFBB' }, // 设置颜色渐变
              { offset: 1, color: '#2FAF99' }
            ]
          }
        ],
        legend: {
          orient: 'horizontal',
          itemWidth: 15,
          itemHeight: 10,
          data: [ '未执行', '执行失败', '执行成功' ],   // 图例
          textStyle: {
            fontSize: 10,
            color: '#333'
          },
          zlevel: 1,
          right: '2%',
          top: '3%'
        },
        dataZoom: {
          show: false,
          start: 0,
          end: 100
        },
        center: ['5%', '50%'],
        xAxis: {
          type: 'category',
          data: ['替代文字2', '替代文字2', '替代文字2', 'T替代文字2', '替代文字2', '替代文字2', '替代文字1', '替代文字2'],
          axisLabel: {
            interval: 0, // 代表显示所有x轴标签
            rotate: 30,
            textStyle: {
              color: '#000000'
            }
          },
          axisLine: {
            lineStyle: {
              color: '#B9B9BA'
            }
          },
          splitLine: {
            show: false,
            lineStyle: {
              color: ['#315070'],
              width: 1,
              type: 'solid'
            }
          },
          axisTick: {
            show: false,
            lineStyle: {
              color: '#000000'
            }
          }
        },
        grid: {
          x: '10%',
          y: '15%',
          x2: '3%',
          y2: '20%'
        },
        yAxis: [
          {
            // name: '单位:分',
            name: '',
            type: 'value',
            // max: 100,
            splitLine: {
              show: false
            },
            axisTick: {
              show: true,
              lineStyle: {
                color: '#B9B9BA'
              }
            },
            axisLabel: {
              textStyle: {
                color: '#000000'
              }
            },
            axisLine: {
              lineStyle: {
                color: '#B9B9BA'
              }
            },
            splitArea: {
              show: true,
              areaStyle: {
                color: [ '#ffffff', '#F5F6FA' ]
              }
            }
          }
        ],
        series: [
          {
            type: 'bar',
            name: '未执行',
            // data: [10, 10, 10, 10, 20, 20, 30, 50],
            data: [],
            barWidth: 12
            // itemStyle: {
            //   color: '#705AE2'
            // }
          },
          {
            type: 'bar',
            name: '执行失败',
            // data: [10, 40, 10, 10, 60, 20, 30, 50],
            data: [],
            barWidth: 12
            // itemStyle: {
            //   color: '#2E5FE4'
            // }
          },
          {
            type: 'bar',
            name: '执行成功',
            // data: [10, 10, 80, 10, 20, 20, 30, 50],
            data: [],
            barWidth: 12
            // itemStyle: {
            //   color: '#2FAF99'
            // }
          }
        ]
}

posted on 2022-09-30 14:42  芮艺  阅读(158)  评论(0编辑  收藏  举报