您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax |

vue实现横向斜切柱状图

51自学网 2022-05-02 21:32:39
  javascript

本文实例为大家分享了vue实现横向斜切柱状图的具体代码,供大家参考,具体内容如下

实现效果:

实现代码:

<template>  <div class="Consumption">    <div style="width: 350px; height: 180px" ref="ConsumptionChart" />  </div></template><script>import echarts from 'echarts'const myShape = {  x: 0,  y: 0,  width: 10 //间距}// 绘制左侧面const InclinedRoofBar = echarts.graphic.extendShape({  shape: myShape,  buildPath: function(ctx, shape) {    // 会canvas的应该都能看得懂,shape是从custom传入的    const xAxisPoint = shape.xAxisPoint    const c0 = [shape.x, shape.y]    const c1 = [shape.x + 14, shape.y - 10]    const c2 = [xAxisPoint[0], xAxisPoint[1] - 10]    const c3 = [xAxisPoint[0], xAxisPoint[1]]    ctx      .moveTo(c0[0], c0[1])      .lineTo(c1[0], c1[1])      .lineTo(c2[0], c2[1])      .lineTo(c3[0], c3[1])      .closePath()  }})const colors = ['rgba(50, 197, 255, 0.8)', 'rgba(0, 253, 255, 0.8)', 'rgba(255, 235, 0, 0.8)']const colorss = ['rgba(0, 145, 255, 1)', 'rgba(68, 215, 182, 1)', 'rgba(215, 170, 68, 1)']// 注册三个面图形echarts.graphic.registerShape('InclinedRoofBar', InclinedRoofBar)const defaultOption = {  tooltip: {    show: true,    trigger: 'axis',    axisPointer: {      type: 'shadow'    }  },  grid: {    top: 10,    bottom: 30,    left: 10,    right: 10,    containLabel: true  },  yAxis: {    type: 'category',    data: [],    axisLine: {      show: false    },    axisTick: {      show: false    },    axisLabel: {      color(value, index) {        return colorss[index]      },      fontSize: 14    }  },  xAxis: {    type: 'value',    axisLine: {      show: false    },    min: 0,    splitLine: {      show: false    },    axisTick: {      show: false    },    axisLabel: {      show: false    },    boundaryGap: ['20%', '20%']  },  series: [    {      type: 'custom',      name: '',      itemStyle: {        color: 'rgba(44, 197, 253, 1)'      },      renderItem: (params, api) => {       const location = api.coord([api.value(0), api.value(1)])        const xlocation = api.coord([0, api.value(1)])        return {          type: 'InclinedRoofBar',          shape: {            api,            xValue: api.value(0),            yValue: api.value(1),            x: location[0],            y: location[1] + myShape.width,            xAxisPoint: [xlocation[0], xlocation[1] + myShape.width]          },          style: {            fill: new echarts.graphic.LinearGradient(0, 0, 1, 0, [              {                offset: 0,                color: colors[params.dataIndex]              },              {                offset: 1,                color: colorss[params.dataIndex]              }            ])          }        }      },      data: []    },    {      type: 'bar',      label: {        normal: {          show: true,          position: 'right',          fontSize: 14,          offset: [15, 0]        }      },      showBackground: false,      barWidth: 14,      backgroundStyle: {        color: 'rgba(50, 197, 255, 0.1)'      },      itemStyle: {        color: 'transparent'      },      tooltip: {        show: false      },      data: []    }  ]}export default {  data() {    return {      myChart: null    }  },  mounted() {    this.myChart = echarts.init(this.$refs.ConsumptionChart)  },  methods: {    getOption(seriesData) {      const option = defaultOption      const { yAxis, series } = option      // 处理数据      yAxis.data = ['低', '中', '高']      series[0].data = seriesData      series[1].data = seriesData.map((item, index) => Object.assign(item, { label: { color: colorss[index] } }))      this.myChart.setOption(option)    }  }}</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持wanshiok.com。


vue+echarts实现进度条式柱状图
vue+echart实现双柱状图
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1