当前位置:   article > 正文

echart 属性以及用法详解;title、legend 、tooltip 、xAxis 、yAxis 、series;pie_type: 'solid

type: 'solid

记录一些关于echart的属性及用法

官方api:Documentation - Apache ECharts

数据

  1. let pieData=[
  2. { value: 1048, name: 'PUSH'},
  3. { value: 148, name: '内容'},
  4. { value: 735, name: '短信'},
  5. // { value: 1048, name: 'PUSH2'},
  6. // { value: 148, name: '内容2'},
  7. // { value: 735, name: '短信2'},
  8. // { value: 1048, name: 'PUSH3'},
  9. // { value: 148, name: '内容3'},
  10. // { value: 735, name: '短信3'}
  11. ]

1、title  主副标题

  1. title : {
  2. text: '主标题',//'\n'指定换行
  3. subtext: '副标题',//'\n'指定换行
  4. itemGap:5,//主副标题之间间隔,单位px,默认为10
  5. link:'',//主标题文本超链接,默认值true
  6. target: null,//打开主标题链接形式,'self' | 'blank',默认'blank'(新窗口)
  7. sublink: '',//副标题文本超链接
  8. subtarget: null,//打开副标题链接形式,'self' | 'blank',默认'blank'(新窗口)
  9. x:'left',默认为'left',可选为:'center' | 'left' | 'right' | {number}(x坐标,单位px)
  10. y: 'top',//默认为top,可选为:'top' | 'bottom' | 'center' | {number}(y坐标,单位px)
  11. textAlign: null,//水平对齐方式,默认根据x设置自动调整,可选为: left' | 'right' | 'center
  12. backgroundColor: '#ccc',//标题背景颜色,默认'rgba(0,0,0,0)'透明
  13. borderColor: '#000',//标题边框颜色,默认'#ccc'
  14. borderWidth:0,//标题边框线宽,单位px,默认为0(无边框)
  15. padding: 5,//标题内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距
  16. textStyle: {//主标题样式
  17. fontFamily: 'Helvetica Neue,Helvetica,PingFang SC,Tahoma,Arial,sans-serif',
  18. fontSize: 14,
  19. // fontStyle: 'normal',
  20. fontWeight: 'bold',
  21. },
  22. subtextStyle: {//副标题样式
  23. color:'red',
  24. fontFamily: 'Helvetica Neue,Helvetica,PingFang SC,Tahoma,Arial,sans-serif',
  25. fontSize: 12,
  26. fontStyle: 'normal',
  27. fontWeight: 'normal',
  28. },
  29. },

效果:可根据自己需要随意设置主副标题样式

2、grid 图表位置

  1. grid: {
  2. top: '15%', //如果top、left、rigt、bottom都设置成0图表就会充满画布
  3. left: '15%',
  4. right: '15%',
  5. bottom: '15%',
  6. // width:"300", //图表宽度
  7. // height:"100", //图表高度
  8. containLabel: true,//grid 区域是否包含坐标轴的刻度标签
  9. // show:true,//设置了true下面的containLabel以下的属性才会起作用
  10. // backgroundColor:"pink", //网格背景色 transparent
  11. // borderColor:"#000", //网格的边框颜色
  12. // borderWidth:2, //网格边框线宽
  13. // shadowColor:"red", //阴影颜色
  14. // shadowOffsetX:0, //阴影水平方向上的偏移距离
  15. // shadowOffsetY:0, //阴影垂直方向上的偏移距离
  16. // shadowBlur:10, //阴影的模糊大小
  17. },

 效果

3、legend 图例

  1. legend: {
  2. bottom: '5%',//top,bottom
  3. left: 'center',//left,right,center
  4. icon:'circle',//'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'
  5. itemHeight: 6, // 图例icon高度
  6. itemWidth: 6, // 图例icon宽度
  7. orient: "horizontal", // vertical垂直排列, horizontal 水平排列
  8. // type: "scroll", // 可滚动翻页的图例
  9. // pageIconColor: "#999", //翻页箭头颜色
  10. // pageIconInactiveColor: "green", //翻页(即翻页到头时箭头的颜色
  11. pageTextStyle: {
  12. color: "#ccc", //翻页数字颜色
  13. },
  14. align: "left", // 图例icon在左侧
  15. // formatter:function (item) {
  16. // console.log('legend',item)
  17. // return `自定义:${item}`
  18. // },
  19. selectedMode:false,//去掉鼠标点击事件 false不可点击 true可以点击
  20. },

效果:图例icon、位置、带翻页、不带翻页等

4、tooltip 显示提示框

  1. tooltip: {
  2. trigger: 'item',//不自定义此一句即可;属性值:item数据项触发、axis坐标轴触发、none不触发
  3. axisPointer: {
  4. type: 'line',//属性值:line直线、shadow阴影、cross十字形、none
  5. axis: 'auto', //指示器坐标轴,属性值:x、y、radius、angle
  6. snap: true, //坐标轴指示器是否自动吸附到点上。默认自动判断,布尔值
  7. label: {
  8. show: false, //是否显示文本标签
  9. precision: 'auto', //文本标签中数值小数点精度。默认根据当前轴的值自动判断
  10. formatter: {}, //文本标签文字格式化器
  11. margin:5, //label距离轴的距离
  12. color: '#fff',
  13. fontSize: 12,
  14. lineHeigh: 20,
  15. width: 20,
  16. height: 40,
  17. textBorderColor: '', //文字自己的描边颜色
  18. textBorderWidth:1, //文字自己的描边宽度
  19. textBorderType: 'solid', //文字自己的描边,值:solid、dashed、dotted、number、array
  20. textBorderDashOffset: 0,//虚线偏移量,搭配textBorderType指定dashed、array
  21. textShadowColor: 'transparent',//文字自己阴影颜色
  22. textShadowBlur: 0,//文字本身的阴影长度
  23. textShadowOffsetX: 0,//文字自己的阴影 X 偏移
  24. textShadowOffsetY: 0,//文字自己的阴影 Y 偏移
  25. overflow: 'none', //文字超出宽度是否截断或换行,配置width时有效,truncate/break/breakAll
  26. ellipsis: '', //如果overflow配置为'truncate',可以通过该属性配置末尾显示的文本
  27. padding: 0,
  28. backgroundColor: 'auto',//背景颜色
  29. borderColor: '', //文本标签的边框颜色
  30. borderWidth: 0, //文本标签的边框宽度
  31. shadowBlur: 3, //图形阴影模糊大小,(和shadowColor,shadowOffsetX,shadowOffsetY搭配设置阴影效果)
  32. shadowColor:'pink', //阴影颜色
  33. shadowOffsetX: 0, //阴影水平方向上的偏移距离
  34. shadowOffsetY: 0 //阴影垂直方向上的偏移距离
  35. },
  36. lineStyle:{
  37. color:'#faa12f',
  38. width: 1, //线宽
  39. type: 'solid',//线的类型值:solid、dashed、dotted、number、array
  40. dashOffset: 0,//虚线偏移量(配合type的dashed、array)
  41. cap: 'butt',//线段末端的绘制,方butt、元round、方square(与butt不同)
  42. join: 'bevel',//设置2个长度不为0的相连部分(线段,圆弧,曲线)如何连接在一起的属性,bevel默认、round、miter
  43. miterLimit: 10,//设置斜接面限制比例(当join为miter才有效),值:10默认值、number
  44. shadowBlur: 10,//阴影模糊大小(配合shadowColor、shadowOffsetX、shadowOffsetY设置阴影效果)
  45. shadowColor: '',//阴影颜色
  46. shadowOffsetX: 0,//阴影水平方向上的偏移距离
  47. shadowOffsetY: 0,//阴影垂直方向上的偏移距离
  48. opacity: 1,
  49. },
  50. },
  51. position: function (point, params, dom, rect, size) {//设置提示框的位置,如果不是蛇就是默认的
  52. // console.log(point)
  53. return [point[0]-30,point[1]-40];//retrun [x,y] 返回2点位置即可
  54. },
  55. backgroundColor:'none', // 修改背景颜色(去掉默认提示框透明背景)
  56. borderColor:'#fff', // 修改字体颜色
  57. textStyle: {//设置提示框里的文字样式
  58. fontSize: 12,
  59. color: "#fff",
  60. },
  61. formatter:function (item) {//自定义提示框里提示的内容、样式等,可以打印看item里的值
  62. // console.log('item',item)
  63. return `<div class="tipbg"><span>${item.name}${item.percent}%</span></div>`
  64. },
  65. extraCssText:'border:none;box-shadow:none;',//这里可以设置默认提示框的样式,如果文字太长需要换行,则在这个属性中增加max-width:需要的宽度;white-space:pre-wrap
  66. confine:true,//解决有些提示框现实不全的问题,没有问题不设也可
  67. },
  1. .echartBox{width:400px;height:400px;margin:100px auto;border:2px solid #000;}
  2. .tipbg span{background:#0f3683;padding:5px 10px;border-radius:12px;}

效果:不自定义(不自定义默认name和value)、自定义设置提示框内容和样式以及其他的配置可以改变值来看

5、线图 x轴:xAxis  (yAxis 和 xAxis基本一致)

  1. //x轴
  2. xAxis: {
  3. name:'x轴名字',
  4. show: true,// 是否显示x轴
  5. position: 'bottom',// x轴的位置top、bottom
  6. type: 'category',//坐标轴类型,值category、value,与y轴对应,如果x轴配置category则y轴配置value
  7. nameRotate:50,// 坐标轴名字旋转,角度值
  8. inverse: false,// 是否反向显示坐标轴 true反向
  9. boundaryGap:['10%','10%'],// 坐标轴两边留白 值:['80%','80%'],或布尔值true、false
  10. splitLine:{
  11. show: true,//去除网格线
  12. interval: '0', // 坐标轴刻度标签的显示间隔,在类目轴中有效.0显示所有
  13. color: ['#ccc'], //也可设置多个 一次循环显示
  14. width: 3, //线宽
  15. type: 'solid', // 坐标轴线:solid实线、dashed虚线、dotted点状
  16. },
  17. // splitArea : {
  18. // show : true,//去除网格区域
  19. // interval: '0', // 坐标轴刻度标签的显示间隔,在类目轴中有效.0显示所有
  20. // areaStyle: {
  21. // color: ['rgba(234,234,234,0.6)','rgba(210,210,210,0.5)'], // 分隔区域颜色,按数组中颜色顺序循环,默认是一个深浅的间隔色
  22. // opacity:1, // 图形透明度
  23. // },
  24. // },
  25. axisLine: {//x轴线设置
  26. show: true,// 是否显示坐标轴轴线
  27. // symbol: ['none', 'arrow'],// 轴线两端箭头,值:none表示没有箭头,arrow表示有箭头
  28. // symbolSize: [15, 15],// 轴线两端箭头大小,[宽度,高度]
  29. lineStyle: {//x坐标轴样式设置
  30. type: 'solid',//solid实线、dashed虚线、dotted点状
  31. color: 'red',//x线颜色
  32. width:'1'//坐标线的宽度
  33. }
  34. },
  35. axisLabel: {//x轴字体颜色
  36. show:true,//是否显示刻度标签
  37. interval: '0',// 刻度标签的显示间隔,在x轴中有效.0显示所有
  38. inside: false,// 刻度标签是否朝内,默认朝外
  39. rotate: 50,// 刻度标签旋转的角度,旋转的角度从-90度到90度
  40. margin:20,// 刻度标签与轴线之间的距离
  41. fontStyle: 'normal', // 字体样式:normal无样式、italic斜体、oblique倾斜字体
  42. textStyle: {//刻度文本颜色
  43. color: 'green',
  44. },
  45. align: 'left',// 文字水平对齐方式,默认自动 left、center、right
  46. verticalAlign: 'left',// 文字垂直对齐方式,默认自动 top、middle、bottom
  47. lineHeight: '30',// 行高
  48. backgroundColor: 'pink', // 文字块背景色,例:pink, rgba(0,23,11,0.3)
  49. },
  50. axisTick:{//x轴刻度
  51. // show: true,//是否显示刻度true显示 false不显示
  52. // inside: true, // 坐标轴刻度方向,默认朝外(即图表外),true朝里 false朝外
  53. // length:10,// 坐标轴刻度的长度
  54. lineStyle: {
  55. color: '#000',// 刻度线的颜色
  56. width: 1,// 坐标轴刻度线宽
  57. type: 'solid',// 坐标轴线类型:solid实线、dashed虚线、dotted点状
  58. },
  59. } ,
  60. data: ['3月', '4月', '5月', '6月', '7月', '8月', '9月'],
  61. },
  62. //y轴
  63. yAxis: {
  64. type: 'value',
  65. interval:0.5,//y轴间隔值
  66. minInterval:1,//设置最小间隔是1
  67. min:0,//设置y轴最小值
  68. max:500,//设置y轴最大值
  69. }

效果:具体的可自行变换值看效果

5饼图 pie :series

  1. series: [
  2. {
  3. name: '图标实例',
  4. type: 'pie',
  5. radius: ['30%', '90%'],//数组设置2个环形,不设置或设置一个['100%'] 整个一个圆
  6. avoidLabelOverlap: false,
  7. hoverAnimation:false, //鼠标悬浮是否有区域弹出动画
  8. itemStyle: {//设置边框、圆角等
  9. // borderRadius:[0,0,9,9],//左下、右下、左上、右上
  10. borderColor: '#fff',
  11. borderWidth:1
  12. },
  13. label: {//文本标签
  14. show: false,
  15. position: 'inside',//居中center,图表里inside,外部outer
  16. textStyle: {
  17. fontWeight: 300,
  18. fontSize: 16 //文字的字体大小
  19. },
  20. // formatter: function (d) {//定义内容
  21. // return Math.round(d.percent) + '%'
  22. // }
  23. },
  24. emphasis: {
  25. itemStyle: {//鼠标悬停有阴影
  26. shadowBlur: 10,
  27. shadowOffsetX: 0,
  28. shadowColor: 'rgba(0, 0, 0, 0.5)'
  29. },
  30. label: {//鼠标悬停时中心显示对应内容
  31. show: true,
  32. fontSize: '40',
  33. fontWeight: 'bold'
  34. }
  35. },
  36. /*
  37. //如果要有多行 emphasis 要设置 ,因为它不支持返回标签形式 所以写法和tip等不太一样
  38. label: {
  39. show: false,
  40. position: 'center'
  41. },
  42. emphasis: {
  43. label: {
  44. show: true,
  45. // fontSize: '20',
  46. // fontWeight: 'bold'
  47. color:'#333',
  48. formatter:function (item) {
  49. //console.log('item',item)
  50. let str = `{sty1|${Math.round(item.percent) + '%'}}\n {sty2|${item.name}}`; //这里的sty1 sty2 就是设置不同行的 ,有种不同class的意思
  51. return str;
  52. // return Math.round(item.percent) + '%\n'+item.name
  53. },
  54. rich: {// 通过上面设置的sty1、sty2来设置不同的css即可,必须有rich 要不然直接return是不行的
  55. sty1: { fontSize:16,},
  56. sty2: { fontSize:10,}
  57. },
  58. */
  59. }
  60. },
  61. //
  62. data:pieData,
  63. }
  64. ]

效果:边框、圆角、环形、鼠标悬停、文本标签自定义或位置等(图3、4、5)、6是设置不同样式的emphasis

 图表自适应

window.addEventListener('resize', myChart.resize);

 完整代码

  1. <style>
  2. .echartBox{width:400px;height:400px;margin:100px auto;border:2px solid #000;}
  3. .tipbg span{background:#0f3683;padding:5px 10px;border-radius:12px;}
  4. </style>
  5. <div class="echartBox" id="echartBox"></div>
  6. <script type="text/javascript" src="https://fastly.jsdelivr.net/npm/echarts@5.4.0/dist/echarts.min.js"></script>
  1. <script>
  2. let pieData=[
  3. { value: 1048, name: 'PUSH'},
  4. { value: 148, name: '内容'},
  5. { value: 735, name: '短信'},
  6. // { value: 1048, name: 'PUSH2'},
  7. // { value: 148, name: '内容2'},
  8. // { value: 735, name: '短信2'},
  9. // { value: 1048, name: 'PUSH3'},
  10. // { value: 148, name: '内容3'},
  11. // { value: 735, name: '短信3'}
  12. ]
  13. pieFun(pieData,'echartBox')
  14. function pieFun(pieData,ele){
  15. let dom = document.getElementById(ele);
  16. let myChart = echarts.init(dom);
  17. let app = {};
  18. option = null;
  19. option = {
  20. color:['#FF633B','#FFCA00','#3399FF','#FF9300','FF5812','#ff9933','#cbcbcb'],
  21. legend: {
  22. top: '5%',
  23. left: 'left',
  24. icon:'circle',//'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'
  25. itemHeight: 6, // 图例icon高度
  26. itemWidth: 6, // 图例icon宽度
  27. orient: "vertical", // vertical垂直排列 horizontal 水平排列
  28. // type: "scroll", // 可滚动翻页的图例
  29. // pageIconColor: "#999", //翻页箭头颜色
  30. // pageIconInactiveColor: "green", //翻页(即翻页到头时箭头的颜色
  31. pageTextStyle: {
  32. color: "#ccc", //翻页数字颜色
  33. },
  34. align: "left", // 图例icon在左侧
  35. // formatter:function (item) {
  36. // console.log('legend',item)
  37. // return `自定义:${item}`
  38. // }
  39. },
  40. tooltip: {
  41. trigger: 'item',
  42. position: function (point, params, dom, rect, size) {
  43. // console.log(point)
  44. return [point[0]-30,point[1]-40];
  45. },
  46. backgroundColor:'none', // 修改背景颜色
  47. borderColor:'#fff', // 修改字体颜色
  48. textStyle: {
  49. fontSize: 12,
  50. color: "#fff",
  51. },
  52. formatter:function (item) {
  53. // console.log('item',item)
  54. return `<div class="tipbg"><span>${item.name}${item.percent}%</span></div>`
  55. },
  56. extraCssText:'border:none;box-shadow:none;',
  57. confine:true,
  58. },
  59. series: [
  60. {
  61. name: '图标实例',
  62. type: 'pie',
  63. radius: ['30%', '90%'],
  64. avoidLabelOverlap: false,
  65. hoverAnimation:false, //鼠标悬浮是否有区域弹出动画
  66. itemStyle: {
  67. // borderRadius:[0,0,9,9],//左下、右下、左上、右上
  68. borderColor: '#fff',
  69. borderWidth:1
  70. },
  71. label: {//文本标签
  72. show: false,
  73. position: 'inside',//居中center,图表里inside,外部outer
  74. textStyle: {
  75. fontWeight: 300,
  76. fontSize: 16 //文字的字体大小
  77. },
  78. // formatter: function (d) {//定义内容
  79. // return Math.round(d.percent) + '%'
  80. // }
  81. },
  82. // labelLine: {
  83. // show: false
  84. // },
  85. emphasis: {
  86. itemStyle: {//鼠标悬停有阴影
  87. shadowBlur: 10,
  88. shadowOffsetX: 0,
  89. shadowColor: 'rgba(0, 0, 0, 0.5)'
  90. },
  91. label: {//鼠标悬停时中心显示对应内容
  92. show: false,
  93. fontSize: '40',
  94. fontWeight: 'bold'
  95. }
  96. },
  97. data:pieData,
  98. }
  99. ]
  100. };
  101. if (option && typeof option === "object") {
  102. myChart.setOption(option, true);
  103. }
  104. window.addEventListener('resize', myChart.resize);
  105. }
  106. </script>

简单折线图完整代码

<div id="container" style="width:630px;height:250px;margin:20px auto"></div>
  1. var dom = document.getElementById("container");
  2. var myChart = echarts.init(dom);
  3. var app = {};
  4. option = null;
  5. option = {
  6. title : {
  7. // text: 'Monthly Repayment (estimated)',
  8. subtext: 'Renta:$/qft2',
  9. x:'left',
  10. top:10
  11. },
  12. // tooltip: {//鼠标悬停浮层
  13. // axisPointer: {//鼠标经过显示
  14. // type: 'shadow'
  15. // }
  16. // },
  17. tooltip: {
  18. trigger: 'axis',
  19. axisPointer: {
  20. type: 'line',
  21. lineStyle:{
  22. color:'#faa12f'
  23. },
  24. z:1
  25. },
  26. backgroundColor:'rgb(255,255,255)',
  27. extraCssText:'box-shadow:0 0 3px 3px rgba(0, 0, 0, 0.3)',
  28. textStyle:{
  29. color:'#333'
  30. },
  31. },
  32. //x轴
  33. xAxis: {
  34. type: 'category',
  35. // boundaryGap: false,
  36. // splitLine:{show: false},//去除网格线
  37. // splitArea : {show : false},//去除网格区域
  38. data: ['3mth', '4mth', '5mth', '6mth', '7mth', '8mth', '9mth'],
  39. axisLine: {//x轴线设置
  40. lineStyle: {
  41. type: 'solid',
  42. color: '#f0f0f0',//x线的颜色
  43. width:'1'//坐标线的宽度
  44. }
  45. },
  46. axisLabel: {//x轴字体颜色
  47. textStyle: {
  48. color: '#949494',
  49. }
  50. },
  51. axisTick:{//去掉x轴刻度
  52. show: false
  53. }
  54. },
  55. yAxis: {
  56. type: 'value',
  57. // name: 'Renta:$/qft2',
  58. splitLine:{//保留网格线
  59. show: true,
  60. lineStyle:{//y轴网格线设置
  61. color: '#f9f9f9',
  62. width: 1,
  63. type: 'solid'
  64. }
  65. },
  66. splitArea : {show :false},//去除网格区域
  67. axisLine: {//y轴线设置
  68. lineStyle: {
  69. type: 'solid',
  70. color:'#f0f0f0',
  71. width:'1'
  72. }
  73. },
  74. axisLabel: {//y轴字体颜色
  75. textStyle: {
  76. color: '#949494'
  77. }
  78. },
  79. axisTick:{//去掉Y轴刻度
  80. show: false
  81. }
  82. },
  83. series: [{
  84. data: [1800, 2200, 3600, 3000, 2000, 2900, 2500],
  85. type: 'line',
  86. symbol:"circle",//设定为实心点 类型 : 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'
  87. symbolSize:6,//圆点大小
  88. // showSymbol:true,
  89. hoverAnimation:true,
  90.         animation: true,
  91. itemStyle: {
  92. normal: {
  93. color: "#faa12f",//圆点颜色
  94. borderColor:'rgba(251,222,153,0.5)',
  95. borderWidth:8,
  96. lineStyle: {//折线颜色大小
  97. type:'solid', //'dotted'虚线 'solid'实线
  98. color: "#faa12f",
  99. width:1,
  100. borderColor:'#faa12f', //拐点边框颜色
  101. }
  102. }
  103. },
  104. // textStyle:{//x、y轴字体颜色大小
  105. // fontSize:12,
  106. // color:'#949494'
  107. // },
  108. }],
  109. };
  110. if (option && typeof option === "object") {
  111. myChart.setOption(option, true);
  112. }

效果

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/302982?site
推荐阅读
相关标签
  

闽ICP备14008679号