echarts:x轴y轴配置 真实接口获取数据分析

337 阅读2分钟

x轴

 xAxis: {
        // 是否显示x轴数据
        // show:false,
        // 是否显示x轴的水平线 不包括刻度线
        axisLine: {
          show: true,
          // 控制整个x轴的颜色
          lineStyle: {
            //  color:'red',
            color: {
              type: "linear",
              x: 0,
              y: 0,
              // 颜色变化顺序从左到右
              x2: 1,
              y2: 0,
              colorStops: [
                {
                  offset: 0,
                  color: "red", //柱子最上面的颜色是红色
                },
                {
                  offset: 1,
                  color: "blue", //柱子最下面的颜色是蓝色
                },
              ],
              global: false,
            },
            width: 5,
          },
         
        },
         // 刻度线设置
          axisTick: {
            // 是否显示刻度线
            show: true,
            // 刻度线是否在柱子的中间显示
            alignWithLabel: true,
            // true 刻度线显示在x轴水平线的上方 false 刻度线显示在x轴水平线的下方
            inside: false,
            length: 10, //控制刻度线的长度
            // 设置刻度线的颜色样式
            lineStyle: {
              //  设置颜色的模糊度
              shadowBlur: 4,
              // 设置模糊颜色
              shadowColor: "red",
              // 设置颜色
              color:"green"
            },
          },
        data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
        // x轴文字的样式 数据很多 页面显示不下 ,配置如下
        axisLabel: {
          /* 显示所有的x轴的数据 */
          interval: 0,
          /* 放不下的倾斜角度 */
          rotate: 0,
          /* 数据距离刻度线的距离 */
          margin: 15,
          // 数据的颜色
          color: "blue",
        },
        //  x轴的网格线
        splitLine: {
          show: true,
          interval: "auto",
          // 网格线的颜色样式
          lineStyle:{
            color:"green"
          }
        },
      },```
      
  ***y***
复制代码

yAxis: { splitLine:{ show:true, lineStyle:{ color:"red" } }, // 不显示y轴的垂直线 axisLine:{ show:false }, }, series: [ { name: "销量", type: "bar", // 所有的柱子和手摸上去的提示都变成红色 // color:‘red’

      //   data: [5, 20, 36, 10, 10, 20],
      data: [
        {
          value: 5,
          name: "衬衫",
        },
        {
          value: 20,
          name: "羊毛衫",
        },
        //给某一个柱子填加颜色
        {
          value: 36,
          name: "雪纺衫",
          itemStyle: {
            //    color: "red"
            // 设置渐变色的柱子颜色
            color: {
              type: "linear",
              x: 0,
              y: 0,
              x2: 0,
              y2: 1,
              colorStops: [
                {
                  offset: 0,
                  color: "red", //柱子最上面的颜色是红色
                },
                {
                  offset: 1,
                  color: "blue", //柱子最下面的颜色是蓝色
                },
              ],
            },
          },
        },
        {
          value: 10,
          name: "裤子",
        },
        {
          value: 10,
          name: "高跟鞋",
        },
        {
          value: 20,
          name: "袜子",
        },
      ],
    },
  ],
});
window.BarChart = myChart;
复制代码

},

真实接口获取数据

  • 父传以获取的后台数据

image.png

created(){
  reportsGet('reports/type/1').then(res=>{
     console.log(res.data)
     let {meta,data}=res.data
     if(meta.status==200){
       this.$message.success(meta.msg)
       this.reportsList=data
     }else{
       ths.$message.error(meta.msg)
     }
   })
  }
复制代码
  • 子收
export default {
name: "LineChart",
props: {
  reportsList: {
    type: Object,
    default: () => {
      return {
        title: {
          text: "折线图",
        },
        tooltip: {},
        xAxis: {
          data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
          axisLabel: {
            /* 显示所有的x轴的数据 */
            interval: 0,
            /* 放不下的倾斜角度 */
            rotate: 0,
            /* 数据距离刻度线的距离 */
            margin: 15,
          },
        },
        yAxis: {},
        series: [
          {
            name: "销量",
            type: "line",
            data: [5, 20, 36, 10, 10, 20],
          },
        ],
      };
    },
  },
},
data() {
  return {
    lineList: {},
  };
},
mounted() {
  // var myChart = echarts.init(document.getElementById('main'));
  var myChart = echarts.init(this.$refs.main);
  // 绘制图表
  // 给图表添加上下距离
  // 不能直接等于赋值 深拷贝一下 生成两个不同的对象
  (this.lineList = JSON.parse(JSON.stringify(this.reportsList))),
    (this.lineList.title = {
      text: "折线图",
    }),
    (this.lineList.grid = {
      width: "80%",
      top: "30%",
      left: "20%",
    }),
  //   把图裂的位置调整一下
  this.lineList.legend.top='10%';
    this.lineList.xAxis[0].axisLabel = {
     
        /* 显示所有的x轴的数据 */
        interval: 0,
        /* 放不下的倾斜角度 */
        rotate: 30,
        /* 数据距离刻度线的距离 */
        margin: 15,
        // 数据的颜色
        color: "blue",
      
      },
      // 把折线图的阴影区域去除
      this.lineList.series.forEach(r=>{
          delete r.areaStyle;
          // 是否平滑显示曲线
          r.smooth=true
      })

    myChart.setOption(this.lineList);
  window.LineChart = myChart;
},
};