折线图

图表加载遇到问题

  • 报类似的错误invalid dom
this.$nextTick(()=>{
    // 这里面放获取dom 初始化echarts等等
)

柱形图

yAxis: {
    type: \'category\',
    inverse: true,
    data: this.provinceList,
    axisLabel: {
        interval: 0 // 解决echarts柱状图x坐标或者y坐标 标签间隔显示的问题
    },
    axisLine: {
        // y轴
        show: false
    },
    axisTick: {
        show: false // y轴刻度线
    }
},
  • 柱形图中百分比的位置
 label: {
     normal: {
         show: true,
         position: \'insideLeft\', // top / left / right / bottom / inside / insideLeft / insideRight / insideTop / insideBottom / insideTopLeft / insideBottomLeft / insideTopRight / insideBottomRight(显示位置)
         formatter: function(params) {
            return params.data.percentage; // 显示后台返回的百分比 
         }
     }
}
  • 柱形图中显示的百分比如何使用后台返回的百分比,具体可以参考https://blog.csdn.net/hudeyong926/article/details/99540666?ivk_sa=1024320u
// 显示网络请求 处理数据
this.provincePeopleNum.push({
    value: parseInt(item.addressUNUm),
    percentage: item.percentage
});

// 实例
label: {
    normal: {
        show: true,
        position: \'insideLeft\', // top / left / right / bottom / inside / insideLeft / insideRight / insideTop / insideBottom / insideTopLeft / insideBottomLeft / insideTopRight / insideBottomRight
        formatter: function(params) {
            // 这里可以打印一下params
            return params.data.percentage; // 显示后台返回的百分比 
        }
    }
}
  • 图例的位置以及文字样式
legend:{
    orient:horizontal,
    x:\'right\',(left right center)
    y:\' center\', (left right center)
    width:\'100\',
    padding:[10, 30,0 0],
    itemWidth:30,
    textStyle:{
        color:\'#000\',
    },
}
  • 遇到多折线图折叠 出现各个点累加 去掉或者stack取不同的值就可以了
series: [
    {
        name: \'播放\',
        type: \'line\',
        stack: \'总量\',
        data: [200, 1320, 1010, 340, 900, 2300, 2100],
        symbol: \'none\',
        itemStyle: { normal: { color: \'#158CFF\' } },
    },
    {
        name: \'收益\',
        type: \'line\',
        stack: \'总量\',
        data: [2620, 820, 1910, 2340, 2900, 2200, 2310],
        symbol: \'none\',
        itemStyle: { normal: { color: \'#FF850A\' } },
    },
    {
        name: \'点赞\',
        type: \'line\',
        stack: \'总量\',
        data: [1500, 2322, 2012, 1542, 1902, 1230, 2410],
        symbol: \'none\',
        itemStyle: { normal: { color: \'#FF5C5C\' } },
    },
    {
        name: \'收藏\',
        type: \'line\',
        stack: \'总量\',
        data: [1150, 1232, 2201, 1154, 2190, 1330, 2410],
        symbol: \'none\',
        itemStyle: { normal: { color: \'#27AA91\' } },
    },
    {
        name: \'转发\',
        type: \'line\',
        stack: \'总量\',
        data: [1150, 1232, 1201, 2154, 1190, 2330, 2410],
        symbol: \'none\',
        itemStyle: { normal: { color: \'#BF5CFF\' } },
    },
],
  • 一些基础的设置,具体全面参考官方文档https://echarts.apache.org/zh/option.html#%2Fsearch%2Flegend
var option = {
    title: {
        text: '课程数据分析',
        subtext: '这是副标题',
        textStyle: {
            // 设置标题的样式
            fontSize: 22,
        },
        subtextStyle: { // 副标题样式
            fontSize: 12,
            fontWeight: 'normal'
        }
    },
    tooltip: { // 提示框
        trigger: 'item', // 触发类型
        formatter: '{a} | {b} | {c}', // 注意这里的 a b c d 有确定的含义,这是链接 [https://blog.csdn.net/GGGyp/article/details/103170482]
        // 或者另一种
        formatter: function (params) {
            console.log(params); // 打印数据,根据需求提取即可
        }
    },
    grid: {
        // echarts图表距离上右下左的位置
        left: '3%',
        right: '4%',
        bottom: '7%',
        containLabel: true, // grid区域是否包含坐标轴的刻度标签
    },
    legend: { // 图例
        show: true,
        x: 'center',
        padding: [10, 10, 8, 0], // y:'bottom',
        itemGap: 6, // 图例每项之间的间隔
        bottom: -5, // 距离
        borderRadius: 5, // 圆角半径,单位px
        icon: 'circle', // 形状,可以是'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'
        data: [
            {name: '播放'},
            {name: '收益'},
            {name: '点赞'},
            {name: '收藏'},
            {name: '转发'},
            {name: '购买'},
        ],
        textStyle: {
            // 图例的公用文本样式
            color: '#000000',
            // fontSize: 15
        },
    },
    xAxis: ['dddd'],
    yAxis: [
        {
            type: 'value',
            name: '',
            min: 0, // y轴的最大值和最小值
            max: 3000,
        },
    ],
    toolbox: { // 工具栏组件
        show: true,
    },
    calculable: true,
    series: [
        {
            name: '播放',
            type: 'line',
            data: this.viewSum,
            symbolSize: 6, // 图元的大小
            itemStyle:
                {
                    normal: {
                        color: '#158CFF', //改变折线点的颜色
                        lineStyle: {
                            color: '#158CFF', //改变折线颜色
                            width: 2,
                        },
                    },
                },
        },
        {
            name: '收益',
            type: 'line',
            data: this.earingsSum,
            symbolSize: 6,
            itemStyle: {
                normal: {
                    color: '#FF850A', //改变折线点的颜色
                    lineStyle:
                        {
                            color:
                                '#FF850A', //改变折线颜色
                            width: 2,
                        },
                },
            },
        },
        {
            name: '点赞',
            type: 'line',
            data: this.clickSum,
            symbolSize: 6,
            itemStyle:
                {
                    normal: {
                        color: '#FF5C5C', //改变折线点的颜色
                        lineStyle:
                            {
                                color:
                                    '#FF5C5C', //改变折线颜色
                                width: 2,
                            },
                    },
                },
        },
        {
            name: '收藏',
            type: 'line',
            data: this.collectSum,
            symbolSize: 6,
            itemStyle:
                {
                    normal: {
                        color:
                            '#27AA91', //改变折线点的颜色
                        lineStyle:
                            {
                                color:
                                    '#27AA91', //改变折线颜色
                                width:
                                    2,
                            },
                    },
                },
        },
        {
            name: '转发',
            type: 'line',
            data: this.shareSum,
            symbolSize: 6,
            itemStyl: {
                normal: {
                    color: '#BF5CFF', //改变折线点的颜色
                    lineStyle:
                        {
                            color:
                                '#BF5CFF', //改变折线颜色
                            width: 2,
                        },
                },
            },
        },
    ],
};
  • 至于 柱形图中每个柱子之间的间隔问题
//间隔问题,还没有找到具体的有用的属性值,我通过调整grid中top和bottom值 尝试拉开了间隔
grid: {
    top: \'5%\',
    bottom: \'10%\'
}

饼图(暂时没用过 以后补充)

关于echarts自适应问题

// 移动端自适应方法(尤其适应一个页面多echars)
mobileResize(flag) {
    window.onresize = () => {
        flag.resize();
    };
}
// 举例
var chart = echarts.init(document.getElementById(\'main\'));
this.mobileResize(chart);

echarts图表位置显示 \'-暂无数据-\'

// 调用接口 给echarts参数赋值
if (res.trendDate.length !== 0) {
    // 再次调用 初始化echarts(获取dom 放echarts 这一堆)
    this.dataTrend();
} else {
    this.focusOnDataX = [];
    // 显示--暂无数据--
    const dom = document.getElementById(\'dataTrend\');
    dom.innerHTML = \'暂无相关数据\';
    dom.style.cssText =\'text-align:right; color: #999; border: none;line-height: 300px;\';
    dom.removeAttribute(\'_echarts_instance_\');
}

tab切换与echarts

  • tab切换之后 右边echarts图表 压缩变形
// 暂时没有找到更好的解决办法 
//防止切换视图时图表被压缩变形
setMychart(){
    //原生js写法
    //这是一个封装好的方法,兼容IE,第一个参数,element,第二个属性,css样式
    function getStyle(obj, attr) {
        if (obj.currentStyle) {
            return obj.currentStyle[attr];
        } else {
            return document.defaultView.getComputedStyle(obj, null)[attr];
        }
    }

    //获取父元素
    let echarts = document.querySelector(\'.manuScriptFather\');
    //获取父元素宽高
    let echartsWidth = getStyle(echarts, \'width\');
    let echartsHeight = getStyle(echarts, \'height\');
    //获取图表元素
    let myChart = document.querySelector(\'#manuScriptAnalysis\');
    //将父元素宽高赋值给图表
    myChart.style.width = echartsWidth;
    myChart.style.height = echartsHeight;
}

css部分
.manuScriptFather {
    height: 500px;
    width: 405px;
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。