当前位置:首页 > echarts > 正文内容

eacharts 工作中用到的记录

自由小鸟1年前 (2023-10-20)echarts565

这种第三方的库一般就是只要看文档就可以快速上手,平时也不会去记这些东西,写个文档记下来,用到的时候现看就可以了

https://echarts.apache.org/examples/zh/index.html#chart-type-pie 文档案例,所有的只要把自己网站的数据换上就可以了

这里我写的就是vue中使用的代码

// 调用echarts图 //这个就是在vue的生命周期里执行方法
    onMounted(() => {
        pieFn()
        productCategoryBar()
    })

    // 饼图的方法
    const pieFn = () => {
    // 通过类名 初始化
    //manage-user 结构上一定是先有一个div盒子定义类,注意,如果没有任何错误,那最好给结构外层再套一个盒子,定义上宽度和高度之类的 
        const mu = echarts.init(document.querySelector('.manage-user')) 
        //多个echarts图就在每个图都配下面这个方法
        document.querySelector('.manage-user').setAttribute('_echarts_instance_', '')
        // 设置基本的参数
            mu.setOption({
                title: { //这里就是和标题都相关的,如果想设置位置那就是left top之类的查看文档
                    text: '管理与用户对比图',
                    // subtext: 'Fake Data',
                    left: 'center'
                },
                tooltip: {
                    trigger: 'item' //提示框组件相关的行为
                },
                legend: { //图例组件相关的行为,就是左边一列的小块        
                    orient: 'vertical',
                    left: 'left',
                    padding: [20, 20, 20, 20],
                    top:'6%', //这里是小块离上面的距离
                },
                series: [ //这里就是右边看到的大饼图的东西了
                    {
                        // name: 'Access From',
                        top: "14%", //这个是右大饼离上面的距离
                        type: 'pie',
                        radius: '65%',
                        data: piedata,
                        emphasis: {
                            itemStyle: {
                                shadowBlur: 10,
                                shadowOffsetX: 0,
                                shadowColor: 'rgba(0, 0, 0, 0.5)'
                            }
                        }
                    }
                ]
            })
        // 用于echarts响应式
        window.addEventListener('resize', function () {
            mu.resize()
        })
    }

// 柱形图
    const productCategoryBar = async () => {
        const pcb = echarts.init(document.querySelector('.product-category-bar'))
        document.querySelector('.product-category-bar').setAttribute('_echarts_instance_', '')
            pcb.setOption({
                title: {
                    text: "产品类别库存总价图",
                    top: "3%",
                    textStyle: {
                        fontSize: 16
                    },
                },
                tooltip: {
                    trigger: 'axis',
                },
                xAxis: {
                    type: 'category',
                    // 食品类,服装类,鞋帽类,日用品类,家具类,家用电器类,纺织品类,五金类
                    data: category
                },
                yAxis: {
                    type: 'value'
                },
                series: [
                    {
                        data: price,
                        type: 'bar',
                        barWidth: 40,
                        colorBy: "data"
                    },
                ]
            })
        window.addEventListener('resize', function () {
            pcb.resize()
        })
    }

echarts常见问题

柱状图legend不出现

①没有配置legend中的data属性
②data的name属性与series的name属性不同

设置legend阴影

        ```js
            itemStyle: {
                opacity: 1,
                shadowColor: "rgba(255, 255, 255, 1)",
                shadowOffsetX: 0,
                shadowOffsetY: 0,
                shadowBlur: 0,
                borderCap: "butt"

            }
        ```

饼图内部设置百分比

            ```js
            label: {
                //echarts饼图内部显示百分比设置
                show: true,
                position: "inside", //outside 外部显示  inside 内部显示
                formatter: `{d}%`,
                color: "#ffffff", //颜色
                fontSize: 12 //字体大小
            },
            ```

如何配置echarts响应式

window.addEventListener("resize", function() {
            charts.resize();
        });

多个echarts图就在每个图都配这个方法

document.querySelector('.某某类).setAttribute('_echarts_instance_', '');

如何调整echarts图在框中的位置

使用grid属性

hoverAnimation报错

hoverAnimation在5.0版本已经弃用了,在series中换如下代码

        emphasis:{
            scale: false,
            }

如果再有其它问题先看一下版本的更新

在vue子组件中eacharts 不显示的问题
是因为Dom 加载时机的问题,只需要在父组件里把子组件显示用重新渲染

const aaa = ref(false);
nextTick(() => {
  aaa.value = true;
});
<Datastatics v-if="aaa" />

版权声明:本文由Web学习之路发布,如需转载请注明出处。

本文链接:https://webge.net/?id=180

返回列表

没有更早的文章了...

没有最新的文章了...

“eacharts 工作中用到的记录” 的相关文章