• 同名数量统计(饼图带滚轮的图例)+详细注释


    #同名数量统计
    #饼图,右边有多项选择,可以有滑动的效果,点击会让其数据参与进来
    <template>
    <div id="main" :style="{'1000px',height:'700px'}"></div>
    </template>
    <script>
    export default {
    name: "demo12",
    data() {
    return {};
    },
    mounted() {
    let Mychart = this.$echarts.init(document.getElementById("main"));
    //传入五十个参数
    var data = genData(50);
    let option = {
    title: {
    text: "同名数量统计",
    subtext: "纯属虚构",
    x: "center"
    },
    tooltip: {
    //数据触发
    trigger: "item",
    formatter: "{a} <br/>{b} : {c} ({d}%)"
    },
    legend: {
    //图例类型为滑轮滚轮类型
    //可滚动翻页的图例。当图例数量较多时可以使用。
    //可进行配置
    type: "scroll",
    //图例列表的布局朝向。'horizontal','vertical'
    orient: "vertical",
    //图例组件离容器右侧的距离。right 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。
    right: 10,
    //图例组件离容器上侧的距离。top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,也可以是 'top', 'middle', 'bottom'。
    top: 20,
    bottom: 20,
    //传递参数为自定义方法的返回值
    data: data.legendData,
    //同样为方法返回值
    selected: data.selected
    },
    series: [
    {
    //系列名称,用于tooltip的显示,legend 的图例筛选,在 setOption 更新数据和配置项时用于指定对应的系列。
    name: "姓名",
    //饼状图
    type: "pie",
    //图表比例大小,比例越大图越大
    radius: "70%",
    //图表的位置,控制左右和上下
    center: ["50%", "50%"],
    //方法返回值
    data: data.seriesData,
    //图形样式。
    itemStyle: {
    //
    emphasis: {
    //图形阴影的模糊大小。该属性配合 shadowColor,shadowOffsetX, shadowOffsetY 一起设置图形的阴影效果。
    shadowBlur: 10,
    //阴影水平方向上的偏移距离。
    shadowOffsetX: 0,
    //阴影颜色。
    //颜色可以使用 RGB 表示,比如 'rgb(128, 128, 128)',如果想要加上 alpha 通道表示不透明度,可以使用 RGBA,比如 'rgba(128, 128, 128, 0.5)',也可以使用十六进制格式,比如 '#ccc'。除了纯色之外颜色也支持渐变色和纹理填充
    shadowColor: "rgba(0, 0, 0, 0.5)"
    }
    }
    }
    ]
    };

    Mychart.setOption(option);


    //遍历传参(随机数随机传入,名字,数量都不一样)
    function genData(count) {
    //定义一个数组,传入很多数字对象
    var nameList = [
    '赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许', '何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章', '云', '苏', '潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳', '酆', '鲍', '史', '唐', '费', '廉', '岑', '薛', '雷', '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '邬', '安', '常', '乐', '于', '时', '傅', '皮', '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄', '和', '穆', '萧', '尹', '姚', '邵', '湛', '汪', '祁', '毛', '禹', '狄', '米', '贝', '明', '臧', '计', '伏', '成', '戴', '谈', '宋', '茅', '庞', '熊', '纪', '舒', '屈', '项', '祝', '董', '梁', '杜', '阮', '蓝', '闵', '席', '季', '麻', '强', '贾', '路', '娄', '危'
    ];
    //需要的数组设置为空,一会好把数据放进来
    var legendData = [];
    var seriesData = [];
    var selected = {};
     
    for (var i = 0; i < 50; i++) {
    name = Math.random() > 0.65
    ? makeWord(4, 1) + '·' + makeWord(3, 0)
    : makeWord(2, 1);
    legendData.push(name);
    seriesData.push({
    name: name,
    value: Math.round(Math.random() * 100000)
    });
    selected[name] = i < 6;
    }

    return {
    legendData: legendData,
    seriesData: seriesData,
    selected: selected
    };

    function makeWord(max, min) {
    //ceil函数:返回大于或者等于指定表达式的最小整数,即向上取整
    var nameLen = Math.ceil(Math.random() * max + min);
    var name = [];
    for (var i = 0; i < nameLen; i++) {
    name.push(nameList[Math.round(Math.random() * nameList.length - 1)]);
    }
    return name.join('');
    }
    }
    }
    };
    </script>

    本文仅提供参考,是本人闲时所写笔记,如有错误,还请赐教,作者:阿蒙不萌,大家可以随意转载

  • 相关阅读:
    那些离不开的 Chrome 扩展插件
    Spring Boot 实战 —— 入门
    Maven 学习笔记
    Linux lvm 分区知识笔记
    Linux 双向 SSH 免密登录
    CentOS Yum 源搭建
    Ubuntu 系统学习
    iOS 测试三方 KIF 的那些事
    Swift 网络请求数据与解析
    iOS Plist 文件的 增 删 改
  • 原文地址:https://www.cnblogs.com/huchong-bk/p/11398826.html
Copyright © 2020-2023  润新知