使用echart的小指南

对 echarts 的了解

官网所有实例,里面涵盖了折线图,柱形图,饼图,散点图,关系图,树图,旭日图,仪表盘等图表 传送门

折线图

——用来反映同一事物在不同时间里的发展变化的情况
(下图为 ECharts 官网示例)传送门
在这里插入图片描述

$.get(ROOT_PATH + '/data/asset/data/aqi-beijing.json', function (data) {
    myChart.setOption(option = {
        title: { // 标题组件
            text: 'Beijing AQI' // 主标题文本
        },
        tooltip: { // 提示框组件
            trigger: 'axis' // 触发类型:坐标轴触发
        },
        xAxis: { // 直角坐标系 grid 中的X轴
            data: data.map(function (item) {
                return item[0];
            }) // 类目数据
        },
        yAxis: { // 直角坐标系 grid 中的Y轴
            splitLine: {
                show: false
            } // 坐标轴在 grid 区域中的分隔线
        },
        toolbox: { // 工具栏
            left: 'center', // 工具栏组件离容器左侧的距离
            feature: { // 各工具配置项
                dataZoom: { // 数据区域缩放
                    yAxisIndex: 'none'
                }, 
                restore: {}, // 配置项还原
                saveAsImage: {} // 保存为图片
            }
        },
        dataZoom: [{ // 区域缩放组件
            startValue: '2014-06-01' // 数据窗口范围的起始数值
        }, {
            type: 'inside' // 内置型数据区域缩放组件(dataZoomInside)
        }],
        visualMap: { // 视觉映射组件
            top: 10, // 视觉映射组件距离容器上侧的距离
            right: 10, // 视觉映射组件距离容器右侧的距离
            pieces: [{ // 自定义分段式视觉映射组件
                gt: 0,
                lte: 50,
                color: '#096' // 大于0小于等于50
            }, {
                gt: 50,
                lte: 100,
                color: '#ffde33' // 大于50小于等于100
            }, {
                gt: 100,
                lte: 150,
                color: '#ff9933' // 大于100小于等于150
            }, {
                gt: 150,
                lte: 200,
                color: '#cc0033' // 大于150小于等于200
            }, {
                gt: 200,
                lte: 300,
                color: '#660099' // 大于200小于等于300
            }, {
                gt: 300,
                color: '#7e0023' // 大于300
            }],
            outOfRange: { // 在选中范围外的视觉元素
                color: '#999' 
            }
        },
        series: { // 系列列表
            name: 'Beijing AQI', // 系列名称,用于提示框的显示
            type: 'line', // 折线图
            data: data.map(function (item) {
                return item[1];
            }),
            markLine: { // 图表标线
                silent: true, // 图形不响应和触发鼠标事件
                data: [{ // 标线的数据数组
                    yAxis: 50
                }, {
                    yAxis: 100
                }, {
                    yAxis: 150
                }, {
                    yAxis: 200
                }, {
                    yAxis: 300
                }]
            }
        }
    });
});

其中最常用的几个属性如下:
1、title:标题组件,也加上图标标题
不仅有 text 主标题文本,还有 subtext 副标题文本,通常主标题文本就满足大部分图标的需求,副标题文本可以根据需要增加
另外,top、right、bottom、left 分别表示组件距离容器上、右、下、左的距离,不设置时默认标题组件居左上角
2、xAxis:直角坐标系 grid 中的 X 轴
3、yAxis:直角坐标系 grid 中的 Y 轴
4、series(最重要):里头包含图标的类型 type
type最基本的类型有折线图 line,柱形图 bar,饼图 pie,散点图 scatter 等,此处可前去官网看详情,在这里插入图片描述
5、tooltip 提示框组件,如果只是想要纯展示的图,可缺省此属性。他有两种触发方式 trigger: 'item'trigger: 'axis'
前者表示数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用;
后者表示坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用。
6、toolbox 工具栏,我常用的工具为 saveAsImage 保存为图片,dataZoom 数据区域缩放
7、legend 图例组件,当有多组数据进行比较的时候,使用该组件看图表时更加清晰

有前四个属性我们就能划出一个简单的图表(直角坐标系),若为饼图那种则不需要第二个属性和第三个属性

简单的折线图举例

在这里插入图片描述

<body style="width: 100vw;height: 100vh;margin: 0;display: flex;align-items: center;justify-content: center;">
	// 承载图表的容器
	<div id="main" style="width: 80vw;height: 70vh;"></div>
	// 引入完全版echarts.js文件
	<script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.8.0/echarts.js"></script>
	<script type="text/javascript">
		// 基于准备好的dom,初始化echarts实例
		var myChart = echarts.init(document.getElementById('main'));
		// 绘制图表
		myChart.setOption({
			title: {
				text: '折线图示例'
			},
			grid: { // 直角坐标系内绘图网格
				left: '10%', // grid 组件离容器左侧的距离
				bottom: '15%', // grid 组件离容器下侧的距离
				width: "80%", // grid 组件的宽度。默认自适应
				height: "70%" // grid 组件的高度。默认自适应
			},
			xAxis: {
          		data: [ '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日' ]
        	},
        	yAxis: {},
        	visualMap: {
          		top: 10,
          		right: 10,
          		pieces: [{
              		gt: 0,
              		lte: 5,
              		color: '#cc0033',
            	},{
              		gt: 5,
              		color: '#096',
            	}],
          		outOfRange: {
            		color: '#999',
          		},
        	},
        	series: [{
            	name: '学习时长',
            	type: 'line',
            	data: [7, 8, 8, 4, 3, 5, 6],
            	markLine: {
              		silent: true,
              		data: [{ yAxis: 5 }],
            	},
          	}]
		})
	</script>
</body>

柱形图

——用来反映一段时间内数据的变化或者各组数据之间的比较关系
(下图为 ECharts 官网示例)传送门
在这里插入图片描述

option = {
	title: { // 标题组件
        text: '某地区蒸发量和降水量',
        subtext: '纯属虚构' // 副标题文本
    },
    tooltip: {
        trigger: 'axis'
    },
    legend: { // 图例组件
        data: ['蒸发量', '降水量'] // 图例的数据数组
    },
    toolbox: { // 工具栏
        show: true,
        feature: { // 各工具配置项
            dataView: {show: true, readOnly: false},
            // 数据视图工具,可以展现当前图表所用的数据,编辑后可以动态更新
            // show 是否显示该工具,readOnly 是否不可编辑
            magicType: {show: true, type: ['line', 'bar']}, // 动态类型切换,类型可以是数组内的几种['line', 'bar', 'stack', 'tiled']
            restore: {show: true},
            saveAsImage: {show: true}
        }
    },
    // 直角坐标系 grid 中的X轴
    xAxis: [
        {
            type: 'category', // 坐标轴类型,'category'类目轴,适用于离散的类目数据
            data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
        }
    ],
    // 直角坐标系 grid 中的Y轴
    yAxis: [
        {
            type: 'value' // 坐标轴类型,'value'数值轴,适用于连续数据
        }
    ],
    // 系列列表
    series: [
        {
            name: '蒸发量',
            type: 'bar', // 柱形图
            data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
            markPoint: { // 图表标注
            	// 标注的数据数组
                data: [
                    {type: 'max', name: '最大值'}, // 特殊的标注类型 max 最大值 min 最小值
                    {type: 'min', name: '最小值'}
                ]
            },
            markLine: { // 图表标线
            	// 标线的数据数组
                data: [
                	{type: 'average', name: '平均值'} // 特殊的标注类型 average 平均值
                ]
            }
        },
        {
            name: '降水量',
            type: 'bar',
            data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],
            markPoint: {
                data: [
                    {name: '年最高', value: 182.2, xAxis: 7, yAxis: 183},
                    {name: '年最低', value: 2.3, xAxis: 11, yAxis: 3}
                ]
            },
            markLine: {
                data: [
                    {type: 'average', name: '平均值'}
                ]
            }
        }
    ]
};

除了几个常用的属性之外,我们还会用到一些功能类的属性,比如:
1、dataZoom 区域缩放组件,一般用来观察细节数据,通过鼠标滚轮,鼠标拖拽,滑动条拖动等实现当前数据区域的变动
2、visualMap 视觉映射组件,可以实现像上文折线图中的颜色分段
3、grid 直角坐标系内绘图网格,可以设置直角坐标系的宽高以及距离容器上右下左侧的距离
4、之前说到的 series 属性中的 markLine 图表标线,可以用来展示图表的最大值,最小值,平均值,中位数,或者是你需要观察的具体数值
5、还是 series 属性中的 markPoint 图表标注,可以用来展示图表的最大值,最小值,平均值
6、在之前提到的 legend 属性中的有一个属性还需要注意,selectedMode 表示图例的选择模式,默认为开启状态,可通过设置 false 来关闭图例。也可以设置 ‘single’ 或 ‘multiple’ 来使用单选或者多选模式。在有多组数据的情况下,默认开启的多选模式。单选的意思是在多组数据的情况下仍显示一组数据,点击图例切换

简单的柱形图举例

在这里插入图片描述

<body style="width: 100vw;height: 100vh;margin: 0;display: flex;align-items: center;justify-content: center;">
	// 承载图表的容器
	<div id="main" style="width: 80vw;height: 70vh;"></div>
	// 引入完全版echarts.js文件
	<script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.8.0/echarts.js"></script>
	<script type="text/javascript">
		// 基于准备好的dom,初始化echarts实例
		var myChart = echarts.init(document.getElementById('main'));
		// 绘制图表
		myChart.setOption({
			title: {
				text: '柱形图示例'
			},
			grid: {
				left: '10%',
				bottom: '15%',
				width: "80%",
				height: "70%"
			},
			xAxis: {
          		data: [ '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日' ]
        	},
        	yAxis: {},
        	series: [{
            	name: '销量',
            	type: 'bar',
            	data: [5, 20, 36, 10, 10, 20, 4]
          	}]
		})
	</script>
</body>

饼图

——一般用于反映总体中各组成部分所占比重
(下图为 ECharts 官网示例)传送门
在这里插入图片描述

option = {
    tooltip: { // 提示框组件
        trigger: 'item', // 触发类型:数据项图形触发
        formatter: '{a} <br/>{b}: {c} ({d}%)' // 提示框浮层内容格式器
    },
    legend: { // 图例组件
        orient: 'vertical', // 图例列表的布局朝向:
        left: 10, // 图例组件离容器左侧的距离
        data: ['直达', '营销广告', '搜索引擎', '邮件营销', '联盟广告', '视频广告', '百度', '谷歌', '必应', '其他']
    },
    series: [
        {
            name: '访问来源',
            type: 'pie', // 饼图
            selectedMode: 'single', // 选中模式:单选
            radius: [0, '30%'], // 饼图的半径,内半径0,外半径30%
            label: { // 饼图图形上的文本标签
                position: 'inner' // 标签位置:饼图扇区内部
            },
            labelLine: {
                show: false
            }, // 标签的视觉引导线样式
            data: [
                {value: 335, name: '直达', selected: true}, // selected: true 该数据项被选中
                {value: 679, name: '营销广告'},
                {value: 1548, name: '搜索引擎'}
            ]
        },
        {
            name: '访问来源',
            type: 'pie',
            radius: ['40%', '55%'],
            label: { // 饼图图形上的文本标签
                formatter: '{a|{a}}{abg|}\n{hr|}\n  {b|{b}:}{c}  {per|{d}%}  ',
                backgroundColor: '#eee', // 文字块背景颜色
                borderColor: '#aaa', // 文字块边框颜色
                borderWidth: 1, // 文字块边框宽度
                borderRadius: 4, // 文字块圆角
                rich: { // 自定义富文本样式
                    a: {
                        color: '#999', // 文字颜色
                        lineHeight: 22, // 文字行高
                        align: 'center' // 文字水平对齐方式
                    },
                    hr: {
                        borderColor: '#aaa',
                        width: '100%', // 文字块宽度
                        borderWidth: 0.5,
                        height: 0 // 文字块高度
                    },
                    b: {
                        fontSize: 16, // 文字字号
                        lineHeight: 33
                    },
                    per: {
                        color: '#eee',
                        backgroundColor: '#334455',
                        padding: [2, 4], // 文字块内边距
                        borderRadius: 2
                    }
                }
            },
            data: [
                {value: 335, name: '直达'},
                {value: 310, name: '邮件营销'},
                {value: 234, name: '联盟广告'},
                {value: 135, name: '视频广告'},
                {value: 1048, name: '百度'},
                {value: 251, name: '谷歌'},
                {value: 147, name: '必应'},
                {value: 102, name: '其他'}
            ]
        }
    ]
};

对于饼图来说,data 数组对象中还需要 name 属性来指定每一个数据项名称
还可以通过设置 radius 属性去画一个圆环
也可以设置 label 属性去改动饼图图形上的文本标签的样式

简单的饼图举例

在这里插入图片描述

<body style="width: 100vw;height: 100vh;margin: 0;display: flex;align-items: center;justify-content: center;">
	// 承载图表的容器
	<div id="main" style="width: 80vw;height: 70vh;"></div>
	// 引入完全版echarts.js文件
	<script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.8.0/echarts.js"></script>
	<script type="text/javascript">
		// 基于准备好的dom,初始化echarts实例
		var myChart = echarts.init(document.getElementById('main'));
		// 绘制图表
		myChart.setOption({
			title: {
				text: '饼图示例'
			},
			tooltip: {
          		trigger: 'item',
        	},
        	series: [{
            	name: '访问来源',
            	type: 'pie',
            	radius: '55%',
            	// roseType: 'angle', // 将饼图转化成南丁格尔图
            	data: [
              		{ value: 335, name: '直接访问' },
              		{ value: 310, name: '邮件营销' },
              		{ value: 234, name: '联盟广告' },
              		{ value: 135, name: '视频广告' },
              		{ value: 1548, name: '搜索引擎' },
            	],
          	}]
		})
	</script>
</body>

散点(气泡)图

——一般用于比较几个数据系列中的数值,多用于科学数据分析
(下图为 ECharts 官网示例)传送门
在这里插入图片描述

option = {
    title: {
        text: '男性女性身高体重分布',
        subtext: '抽样调查来自: Heinz  2003'
    },
    grid: { // 直角坐标系内绘图网格
        left: '3%',
        right: '7%',
        bottom: '3%',
        containLabel: true // grid 区域是否包含坐标轴的刻度标签
    },
    tooltip: { // 提示框组件
        // trigger: 'axis',
        showDelay: 0, // 浮层显示的延迟
        formatter: function (params) {
            if (params.value.length > 1) {
                return params.seriesName + ' :<br/>'
                + params.value[0] + 'cm '
                + params.value[1] + 'kg ';
            }
            else {
                return params.seriesName + ' :<br/>'
                + params.name + ' : '
                + params.value + 'kg ';
            }
        },
        axisPointer: { // 坐标轴指示器配置项
            show: true,
            type: 'cross', // 指示器类型:十字准星指示器
            lineStyle: {
                type: 'dashed',
                width: 1
            }
        }
    },
    toolbox: { // 工具栏
        feature: {
            dataZoom: {},
            brush: { // 区域选择组件
                type: ['rect', 'polygon', 'clear'] // 按钮 'rect':开启矩形选框选择功能;'polygon':开启任意形状选框选择功能;'clear':清空所有选框。
            }
        }
    },
    legend: {
        data: ['女性', '男性'],
        left: 'center'
    },
    // 直角坐标系 grid 中的X轴
    xAxis: [
        {
            type: 'value',
            scale: true, // 是否是脱离 0 值比例。只在数值轴中(type: 'value')有效,设置成 true 后坐标刻度不会强制包含零刻度
            axisLabel: { // 坐标轴刻度标签的相关设置
                formatter: '{value} cm' // 刻度标签的内容格式器
            },
            splitLine: {
                show: false
            }
        }
    ],
    yAxis: [
        {
            type: 'value',
            scale: true,
            axisLabel: {
                formatter: '{value} kg'
            },
            splitLine: {
                show: false
            }
        }
    ],
    // 系列列表
    series: [
        {
            name: '女性',
            type: 'scatter', // 散点(气泡)图
            data: [[161.2, 51.6], [167.5, 59.0], [159.5, 49.2], [157.0, 63.0], [155.8, 53.6],
                [170.0, 59.0], [159.1, 47.6], [166.0, 69.8], [176.2, 66.8], [160.2, 75.2],
                [172.5, 55.2], [170.9, 54.2], [172.9, 62.5], [153.4, 42.0], [160.0, 50.0],
                [147.2, 49.8], [168.2, 49.2], [175.0, 73.2], [157.0, 47.8], [167.6, 68.8],
                [159.5, 50.6], [175.0, 82.5], [166.8, 57.2], [176.5, 87.8], [170.2, 72.8],
                [174.0, 54.5], [173.0, 59.8], [179.9, 67.3], [170.5, 67.8], [160.0, 47.0],
                [154.4, 46.2], [162.0, 55.0], [176.5, 83.0], [160.0, 54.4], [152.0, 45.8],
                [162.1, 53.6], [170.0, 73.2], [160.2, 52.1], [161.3, 67.9], [166.4, 56.6],
                [168.9, 62.3], [163.8, 58.5], [167.6, 54.5], [160.0, 50.2], [161.3, 60.3],
                [167.6, 58.3], [165.1, 56.2], [160.0, 50.2], [170.0, 72.9], [157.5, 59.8],
                [167.6, 61.0], [160.7, 69.1], [163.2, 55.9], [152.4, 46.5], [157.5, 54.3],
                [168.3, 54.8], [180.3, 60.7], [165.5, 60.0], [165.0, 62.0], [164.5, 60.3],
                [156.0, 52.7], [160.0, 74.3], [163.0, 62.0], [165.7, 73.1], [161.0, 80.0],
                [162.0, 54.7], [166.0, 53.2], [174.0, 75.7], [172.7, 61.1], [167.6, 55.7],
                [151.1, 48.7], [164.5, 52.3], [163.5, 50.0], [152.0, 59.3], [169.0, 62.5],
                [164.0, 55.7], [161.2, 54.8], [155.0, 45.9], [170.0, 70.6], [176.2, 67.2],
                [170.0, 69.4], [162.5, 58.2], [170.3, 64.8], [164.1, 71.6], [169.5, 52.8],
                [163.2, 59.8], [154.5, 49.0], [159.8, 50.0], [173.2, 69.2], [170.0, 55.9],
                [161.4, 63.4], [169.0, 58.2], [166.2, 58.6], [159.4, 45.7], [162.5, 52.2],
                [159.0, 48.6], [162.8, 57.8], [159.0, 55.6], [179.8, 66.8], [162.9, 59.4],
                [161.0, 53.6], [151.1, 73.2], [168.2, 53.4], [168.9, 69.0], [173.2, 58.4],
                [171.8, 56.2], [178.0, 70.6], [164.3, 59.8], [163.0, 72.0], [168.5, 65.2],
                [166.8, 56.6], [172.7, 105.2], [163.5, 51.8], [169.4, 63.4], [167.8, 59.0],
                [159.5, 47.6], [167.6, 63.0], [161.2, 55.2], [160.0, 45.0], [163.2, 54.0],
                [162.2, 50.2], [161.3, 60.2], [149.5, 44.8], [157.5, 58.8], [163.2, 56.4],
                [172.7, 62.0], [155.0, 49.2], [156.5, 67.2], [164.0, 53.8], [160.9, 54.4],
                [162.8, 58.0], [167.0, 59.8], [160.0, 54.8], [160.0, 43.2], [168.9, 60.5],
                [158.2, 46.4], [156.0, 64.4], [160.0, 48.8], [167.1, 62.2], [158.0, 55.5],
                [167.6, 57.8], [156.0, 54.6], [162.1, 59.2], [173.4, 52.7], [159.8, 53.2],
                [170.5, 64.5], [159.2, 51.8], [157.5, 56.0], [161.3, 63.6], [162.6, 63.2],
                [160.0, 59.5], [168.9, 56.8], [165.1, 64.1], [162.6, 50.0], [165.1, 72.3],
                [166.4, 55.0], [160.0, 55.9], [152.4, 60.4], [170.2, 69.1], [162.6, 84.5],
                [170.2, 55.9], [158.8, 55.5], [172.7, 69.5], [167.6, 76.4], [162.6, 61.4],
                [167.6, 65.9], [156.2, 58.6], [175.2, 66.8], [172.1, 56.6], [162.6, 58.6],
                [160.0, 55.9], [165.1, 59.1], [182.9, 81.8], [166.4, 70.7], [165.1, 56.8],
                [177.8, 60.0], [165.1, 58.2], [175.3, 72.7], [154.9, 54.1], [158.8, 49.1],
                [172.7, 75.9], [168.9, 55.0], [161.3, 57.3], [167.6, 55.0], [165.1, 65.5],
                [175.3, 65.5], [157.5, 48.6], [163.8, 58.6], [167.6, 63.6], [165.1, 55.2],
                [165.1, 62.7], [168.9, 56.6], [162.6, 53.9], [164.5, 63.2], [176.5, 73.6],
                [168.9, 62.0], [175.3, 63.6], [159.4, 53.2], [160.0, 53.4], [170.2, 55.0],
                [162.6, 70.5], [167.6, 54.5], [162.6, 54.5], [160.7, 55.9], [160.0, 59.0],
                [157.5, 63.6], [162.6, 54.5], [152.4, 47.3], [170.2, 67.7], [165.1, 80.9],
                [172.7, 70.5], [165.1, 60.9], [170.2, 63.6], [170.2, 54.5], [170.2, 59.1],
                [161.3, 70.5], [167.6, 52.7], [167.6, 62.7], [165.1, 86.3], [162.6, 66.4],
                [152.4, 67.3], [168.9, 63.0], [170.2, 73.6], [175.2, 62.3], [175.2, 57.7],
                [160.0, 55.4], [165.1, 104.1], [174.0, 55.5], [170.2, 77.3], [160.0, 80.5],
                [167.6, 64.5], [167.6, 72.3], [167.6, 61.4], [154.9, 58.2], [162.6, 81.8],
                [175.3, 63.6], [171.4, 53.4], [157.5, 54.5], [165.1, 53.6], [160.0, 60.0],
                [174.0, 73.6], [162.6, 61.4], [174.0, 55.5], [162.6, 63.6], [161.3, 60.9],
                [156.2, 60.0], [149.9, 46.8], [169.5, 57.3], [160.0, 64.1], [175.3, 63.6],
                [169.5, 67.3], [160.0, 75.5], [172.7, 68.2], [162.6, 61.4], [157.5, 76.8],
                [176.5, 71.8], [164.4, 55.5], [160.7, 48.6], [174.0, 66.4], [163.8, 67.3]
            ],
            markArea: { // 图表标域,常用于标记图表中某个范围的数据
                silent: true, // 图形不响应和触发鼠标事件
                itemStyle: { // 该标域的样式
                    color: 'transparent',
                    borderWidth: 1,
                    borderType: 'dashed' // 柱条的描边类型:虚线
                },
                data: [[{
                    name: '女性分布区间',
                    xAxis: 'min',
                    yAxis: 'min'
                }, {
                    xAxis: 'max',
                    yAxis: 'max'
                }]]
            },
            markPoint: {
                data: [
                    {type: 'max', name: '最大值'},
                    {type: 'min', name: '最小值'}
                ]
            },
            markLine: {
                lineStyle: {
                    type: 'solid'
                },
                data: [
                    {type: 'average', name: '平均值'},
                    { xAxis: 160 }
                ]
            }
        },
        {
            name: '男性',
            type: 'scatter',
            data: [[174.0, 65.6], [175.3, 71.8], [193.5, 80.7], [186.5, 72.6], [187.2, 78.8],
                [181.5, 74.8], [184.0, 86.4], [184.5, 78.4], [175.0, 62.0], [184.0, 81.6],
                [180.0, 76.6], [177.8, 83.6], [192.0, 90.0], [176.0, 74.6], [174.0, 71.0],
                [184.0, 79.6], [192.7, 93.8], [171.5, 70.0], [173.0, 72.4], [176.0, 85.9],
                [176.0, 78.8], [180.5, 77.8], [172.7, 66.2], [176.0, 86.4], [173.5, 81.8],
                [178.0, 89.6], [180.3, 82.8], [180.3, 76.4], [164.5, 63.2], [173.0, 60.9],
                [183.5, 74.8], [175.5, 70.0], [188.0, 72.4], [189.2, 84.1], [172.8, 69.1],
                [170.0, 59.5], [182.0, 67.2], [170.0, 61.3], [177.8, 68.6], [184.2, 80.1],
                [186.7, 87.8], [171.4, 84.7], [172.7, 73.4], [175.3, 72.1], [180.3, 82.6],
                [182.9, 88.7], [188.0, 84.1], [177.2, 94.1], [172.1, 74.9], [167.0, 59.1],
                [169.5, 75.6], [174.0, 86.2], [172.7, 75.3], [182.2, 87.1], [164.1, 55.2],
                [163.0, 57.0], [171.5, 61.4], [184.2, 76.8], [174.0, 86.8], [174.0, 72.2],
                [177.0, 71.6], [186.0, 84.8], [167.0, 68.2], [171.8, 66.1], [182.0, 72.0],
                [167.0, 64.6], [177.8, 74.8], [164.5, 70.0], [192.0, 101.6], [175.5, 63.2],
                [171.2, 79.1], [181.6, 78.9], [167.4, 67.7], [181.1, 66.0], [177.0, 68.2],
                [174.5, 63.9], [177.5, 72.0], [170.5, 56.8], [182.4, 74.5], [197.1, 90.9],
                [180.1, 93.0], [175.5, 80.9], [180.6, 72.7], [184.4, 68.0], [175.5, 70.9],
                [180.6, 72.5], [177.0, 72.5], [177.1, 83.4], [181.6, 75.5], [176.5, 73.0],
                [175.0, 70.2], [174.0, 73.4], [165.1, 70.5], [177.0, 68.9], [192.0, 102.3],
                [176.5, 68.4], [169.4, 65.9], [182.1, 75.7], [179.8, 84.5], [175.3, 87.7],
                [184.9, 86.4], [177.3, 73.2], [167.4, 53.9], [178.1, 72.0], [168.9, 55.5],
                [157.2, 58.4], [180.3, 83.2], [170.2, 72.7], [177.8, 64.1], [172.7, 72.3],
                [165.1, 65.0], [186.7, 86.4], [165.1, 65.0], [174.0, 88.6], [175.3, 84.1],
                [185.4, 66.8], [177.8, 75.5], [180.3, 93.2], [180.3, 82.7], [177.8, 58.0],
                [177.8, 79.5], [177.8, 78.6], [177.8, 71.8], [177.8, 116.4], [163.8, 72.2],
                [188.0, 83.6], [198.1, 85.5], [175.3, 90.9], [166.4, 85.9], [190.5, 89.1],
                [166.4, 75.0], [177.8, 77.7], [179.7, 86.4], [172.7, 90.9], [190.5, 73.6],
                [185.4, 76.4], [168.9, 69.1], [167.6, 84.5], [175.3, 64.5], [170.2, 69.1],
                [190.5, 108.6], [177.8, 86.4], [190.5, 80.9], [177.8, 87.7], [184.2, 94.5],
                [176.5, 80.2], [177.8, 72.0], [180.3, 71.4], [171.4, 72.7], [172.7, 84.1],
                [172.7, 76.8], [177.8, 63.6], [177.8, 80.9], [182.9, 80.9], [170.2, 85.5],
                [167.6, 68.6], [175.3, 67.7], [165.1, 66.4], [185.4, 102.3], [181.6, 70.5],
                [172.7, 95.9], [190.5, 84.1], [179.1, 87.3], [175.3, 71.8], [170.2, 65.9],
                [193.0, 95.9], [171.4, 91.4], [177.8, 81.8], [177.8, 96.8], [167.6, 69.1],
                [167.6, 82.7], [180.3, 75.5], [182.9, 79.5], [176.5, 73.6], [186.7, 91.8],
                [188.0, 84.1], [188.0, 85.9], [177.8, 81.8], [174.0, 82.5], [177.8, 80.5],
                [171.4, 70.0], [185.4, 81.8], [185.4, 84.1], [188.0, 90.5], [188.0, 91.4],
                [182.9, 89.1], [176.5, 85.0], [175.3, 69.1], [175.3, 73.6], [188.0, 80.5],
                [188.0, 82.7], [175.3, 86.4], [170.5, 67.7], [179.1, 92.7], [177.8, 93.6],
                [175.3, 70.9], [182.9, 75.0], [170.8, 93.2], [188.0, 93.2], [180.3, 77.7],
                [177.8, 61.4], [185.4, 94.1], [168.9, 75.0], [185.4, 83.6], [180.3, 85.5],
                [174.0, 73.9], [167.6, 66.8], [182.9, 87.3], [160.0, 72.3], [180.3, 88.6],
                [167.6, 75.5], [186.7, 101.4], [175.3, 91.1], [175.3, 67.3], [175.9, 77.7],
                [175.3, 81.8], [179.1, 75.5], [181.6, 84.5], [177.8, 76.6], [182.9, 85.0],
                [177.8, 102.5], [184.2, 77.3], [179.1, 71.8], [176.5, 87.9], [188.0, 94.3],
                [174.0, 70.9], [167.6, 64.5], [170.2, 77.3], [167.6, 72.3], [188.0, 87.3],
                [174.0, 80.0], [176.5, 82.3], [180.3, 73.6], [167.6, 74.1], [188.0, 85.9],
                [180.3, 73.2], [167.6, 76.3], [183.0, 65.9], [183.0, 90.9], [179.1, 89.1],
                [170.2, 62.3], [177.8, 82.7], [179.1, 79.1], [190.5, 98.2], [177.8, 84.1],
                [180.3, 83.2], [180.3, 83.2]
            ],
            markArea: {
                silent: true,
                itemStyle: {
                    color: 'transparent',
                    borderWidth: 1,
                    borderType: 'dashed'
                },
                data: [[{
                    name: '男性分布区间',
                    xAxis: 'min',
                    yAxis: 'min'
                }, {
                    xAxis: 'max',
                    yAxis: 'max'
                }]]
            },
            markPoint: {
                data: [
                    {type: 'max', name: '最大值'},
                    {type: 'min', name: '最小值'}
                ]
            },
            markLine: {
                lineStyle: {
                    type: 'solid'
                },
                data: [
                    {type: 'average', name: '平均值'},
                    { xAxis: 170 }
                ]
            }
        }
    ]
};
简单的散点(气泡)图举例

在这里插入图片描述

<body style="width: 100vw;height: 100vh;margin: 0;display: flex;align-items: center;justify-content: center;">
	// 承载图表的容器
	<div id="main" style="width: 80vw;height: 70vh;"></div>
	// 引入完全版echarts.js文件
	<script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.8.0/echarts.js"></script>
	<script type="text/javascript">
		// 基于准备好的dom,初始化echarts实例
		var myChart = echarts.init(document.getElementById('main'));
		// 绘制图表
		myChart.setOption({
			title: {
				text: '散点图示例'
			},
			grid: {
				left: '10%',
				bottom: '15%',
				width: "80%",
				height: "70%"
			},
			xAxis: {},
        	yAxis: {},
        	series: [{
            	name: '销量',
            	type: 'scatter',
            	itemStyle: {
            		opacity: 0.8
            	},
            	symbolSize: function (val) {
            		return val[2] * 40;
            	}, // 标记的大小
            	data: [
            		["14.616", "7.241", "0.896"],
            		["3.958", "5.701", "0.955"],
            		["2.768", "8.971", "0.669"],
            		["9.051", "9.710", "0.171"],
            		["14.046", "4.182", "0.536"],
            		["12.295", "1.429", "0.962"],
            		["4.417", "8.167", "0.113"],
            		["0.492", "4.771", "0.785"],
            		["7.632", "2.605", "0.645"],
            		["14.242", "5.042", "0.368"]
            	]
          	}]
		})
	</script>
</body>

仪表盘

——一般用来反映某个指标值所在的范围
(下图为 ECharts 官网示例)传送门在这里插入图片描述

option = {
	tooltip: {
        formatter: '{a} <br/>{b} : {c}%'
    },
    toolbox: {
        feature: {
            restore: {},
            saveAsImage: {}
        }
    },
    // 系列列表
    series: [
        {
            name: '业务指标',
            type: 'gauge', // 仪表盘
            detail: {formatter: '{value}%'}, // 仪表盘详情,用于显示数据
            data: [{value: 50, name: '完成率'}]
        }
    ]
};

setInterval(function () {
    option.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0;
    myChart.setOption(option, true);
},2000);

雷达图

——一般用于反映多变量的数据。
(下图为 Echarts 官网示例)传送门
在这里插入图片描述

option = {
	title: {
		text: '基础雷达图'
    },
    tooltip: {},
    legend: {
        data: ['预算分配(Allocated Budget)', '实际开销(Actual Spending)']
    },
    radar: { // 雷达图坐标系组件
        name: {
            textStyle: {
                color: '#fff',
                backgroundColor: '#999',
                borderRadius: 3,
                padding: [3, 5]
            }
        },
        // 雷达图的指示器,用来指定雷达图中的多个变量(维度)
        indicator: [
            { name: '销售(sales)', max: 6500},
            { name: '管理(Administration)', max: 16000},
            { name: '信息技术(Information Techology)', max: 30000},
            { name: '客服(Customer Support)', max: 38000},
            { name: '研发(Development)', max: 52000},
            { name: '市场(Marketing)', max: 25000}
        ]
    },
    // 系列列表
    series: [{
        name: '预算 vs 开销(Budget vs spending)',
        type: 'radar', // 雷达图
        data: [
            {
                value: [4300, 10000, 28000, 35000, 50000, 19000],
                name: '预算分配(Allocated Budget)'
            },
            {
                value: [5000, 14000, 28000, 31000, 42000, 21000],
                name: '实际开销(Actual Spending)'
            }
        ]
    }]
};

雷达图特有属性:
radar 雷达图坐标系组件,制作雷达图时不可缺省
里面的 indicator 属性用来指定雷达图中的多个变量,若变量数小于3,那么就没用使用雷达图的必要了

简单的雷达图举例

用大家都比较熟的王者荣耀中的能力图再举个简单的例子
在这里插入图片描述

<body style="width: 100vw;height: 100vh;margin: 0;display: flex;align-items: center;justify-content: center;">
	// 承载图表的容器
	<div id="main" style="width: 80vw;height: 70vh;"></div>
	// 引入完全版echarts.js文件
	<script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.8.0/echarts.js"></script>
	<script type="text/javascript">
		// 基于准备好的dom,初始化echarts实例
		var myChart = echarts.init(document.getElementById('main'));
		// 绘制图表
		myChart.setOption({
			title: {
				text: '雷达图示例'
			},
			legend: {
          		data: ['自己', '好友'],
        	},
        	radar: {
          		name: {
            		textStyle: {
              			color: '#fff',
              			backgroundColor: '#999',
              			borderRadius: 3,
              			padding: [3, 5],
            		},
          		},
          		indicator: [
            		{ name: '综合', max: 10 },
            		{ name: '输出', max: 10 },
            		{ name: '发展', max: 10 },
            		{ name: '团战', max: 10 },
            		{ name: '生存', max: 10 },
            		{ name: 'KDA', max: 10 },
          		],
        	},
        	series: [{
            	name: '能力',
            	type: 'radar',
            	data: [
              		{ value: [8, 7, 8, 9, 10, 7], name: '自己' },
              		{ value: [9, 8, 9, 9, 10, 9], name: '好友' },
            	],
            	areaStyle: {
              		opacity: 0.3,
            	},
          	}]
		})
	</script>
</body>

用 echats 写小例子

数据胡诌,仅供练习

第一个:飞机航线

在这里插入图片描述

<body style="width: 100vw;height: 100vh;margin: 0;display: flex;align-items: center;justify-content: center;">
	// 承载图表的容器
	<div id="main" style="width: 90vw;height: 80vh;"></div>
	// 引入完全版echarts.js文件
	<script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.8.0/echarts.js"></script>
	// 引入china.js文件,已下载至本地根据路径引入
	<script src="./china.js"></script>
	<script type="text/javascript">
		// 基于准备好的dom,初始化echarts实例
		var myChart = echarts.init(document.getElementById('main'));
		var geoCoordMap = {
        	上海: [121.4648, 31.2891],
        	东莞: [113.8953, 22.901],
        	东营: [118.7073, 37.5513],
        	中山: [113.4229, 22.478],
        	临汾: [111.4783, 36.1615],
        	临沂: [118.3118, 35.2936],
        	丹东: [124.541, 40.4242],
        	丽水: [119.5642, 28.1854],
        	乌鲁木齐: [87.9236, 43.5883],
        	佛山: [112.8955, 23.1097],
        	保定: [115.0488, 39.0948],
        	兰州: [103.5901, 36.3043],
        	包头: [110.3467, 41.4899],
        	北京: [116.4551, 40.2539],
        	北海: [109.314, 21.6211],
        	南京: [118.8062, 31.9208],
        	南宁: [108.479, 23.1152],
        	南昌: [116.0046, 28.6633],
        	南通: [121.1023, 32.1625],
        	厦门: [118.1689, 24.6478],
        	台州: [121.1353, 28.6688],
        	合肥: [117.29, 32.0581],
        	呼和浩特: [111.4124, 40.4901],
        	咸阳: [108.4131, 34.8706],
        	哈尔滨: [127.9688, 45.368],
        	唐山: [118.4766, 39.6826],
        	嘉兴: [120.9155, 30.6354],
        	大同: [113.7854, 39.8035],
        	大连: [122.2229, 39.4409],
        	天津: [117.4219, 39.4189],
        	太原: [112.3352, 37.9413],
        	威海: [121.9482, 37.1393],
        	宁波: [121.5967, 29.6466],
        	宝鸡: [107.1826, 34.3433],
        	宿迁: [118.5535, 33.7775],
        	常州: [119.4543, 31.5582],
        	广州: [113.5107, 23.2196],
        	廊坊: [116.521, 39.0509],
        	延安: [109.1052, 36.4252],
        	张家口: [115.1477, 40.8527],
        	徐州: [117.5208, 34.3268],
        	德州: [116.6858, 37.2107],
        	惠州: [114.6204, 23.1647],
        	成都: [103.9526, 30.7617],
        	扬州: [119.4653, 32.8162],
        	承德: [117.5757, 41.4075],
        	拉萨: [91.1865, 30.1465],
        	无锡: [120.3442, 31.5527],
        	日照: [119.2786, 35.5023],
        	昆明: [102.9199, 25.4663],
        	杭州: [119.5313, 29.8773],
        	枣庄: [117.323, 34.8926],
        	柳州: [109.3799, 24.9774],
        	株洲: [113.5327, 27.0319],
        	武汉: [114.3896, 30.6628],
        	汕头: [117.1692, 23.3405],
        	江门: [112.6318, 22.1484],
        	沈阳: [123.1238, 42.1216],
        	沧州: [116.8286, 38.2104],
        	河源: [114.917, 23.9722],
        	泉州: [118.3228, 25.1147],
        	泰安: [117.0264, 36.0516],
        	泰州: [120.0586, 32.5525],
        	济南: [117.1582, 36.8701],
        	济宁: [116.8286, 35.3375],
        	海口: [110.3893, 19.8516],
        	淄博: [118.0371, 36.6064],
        	淮安: [118.927, 33.4039],
        	深圳: [114.5435, 22.5439],
        	清远: [112.9175, 24.3292],
        	温州: [120.498, 27.8119],
        	渭南: [109.7864, 35.0299],
        	湖州: [119.8608, 30.7782],
        	湘潭: [112.5439, 27.7075],
        	滨州: [117.8174, 37.4963],
        	潍坊: [119.0918, 36.524],
        	烟台: [120.7397, 37.5128],
        	玉溪: [101.9312, 23.8898],
        	珠海: [113.7305, 22.1155],
        	盐城: [120.2234, 33.5577],
        	盘锦: [121.9482, 41.0449],
        	石家庄: [114.4995, 38.1006],
        	福州: [119.4543, 25.9222],
        	秦皇岛: [119.2126, 40.0232],
        	绍兴: [120.564, 29.7565],
        	聊城: [115.9167, 36.4032],
        	肇庆: [112.1265, 23.5822],
        	舟山: [122.2559, 30.2234],
        	苏州: [120.6519, 31.3989],
        	莱芜: [117.6526, 36.2714],
        	菏泽: [115.6201, 35.2057],
        	营口: [122.4316, 40.4297],
        	葫芦岛: [120.1575, 40.578],
        	衡水: [115.8838, 37.7161],
        	衢州: [118.6853, 28.8666],
       		西宁: [101.4038, 36.8207],
        	西安: [109.1162, 34.2004],
        	贵阳: [106.6992, 26.7682],
        	连云港: [119.1248, 34.552],
        	邢台: [114.8071, 37.2821],
        	邯郸: [114.4775, 36.535],
        	郑州: [113.4668, 34.6234],
        	鄂尔多斯: [108.9734, 39.2487],
        	重庆: [107.7539, 30.1904],
        	金华: [120.0037, 29.1028],
        	铜川: [109.0393, 35.1947],
        	银川: [106.3586, 38.1775],
        	镇江: [119.4763, 31.9702],
        	长春: [125.8154, 44.2584],
        	长沙: [113.0823, 28.2568],
        	长治: [112.8625, 36.4746],
        	阳泉: [113.4778, 38.0951],
        	青岛: [120.4651, 36.3373],
        	韶关: [113.7964, 24.7028],
      	};
      	var BJData = [
        	[{ name: '北京' }, { name: '上海', value: 95 }],
        	[{ name: '北京' }, { name: '广州', value: 90 }],
        	[{ name: '北京' }, { name: '大连', value: 80 }],
        	[{ name: '北京' }, { name: '南宁', value: 70 }],
        	[{ name: '北京' }, { name: '南昌', value: 60 }],
        	[{ name: '北京' }, { name: '拉萨', value: 50 }],
        	[{ name: '北京' }, { name: '长春', value: 40 }],
        	[{ name: '北京' }, { name: '包头', value: 30 }],
        	[{ name: '北京' }, { name: '重庆', value: 20 }],
        	[{ name: '北京' }, { name: '常州', value: 10 }],
      	];
      	// 飞机图标
      	var planePath =
        'path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705.06,1318.313z';
        // 坐标数据的转换
        var convertData = function (data) {
        	var res = [];
        	for (var i = 0; i < data.length; i++) {
          		var dataItem = data[i];
          		var fromCoord = geoCoordMap[dataItem[0].name]; // 始发地
          		var toCoord = geoCoordMap[dataItem[1].name]; // 目的地
          		if (fromCoord && toCoord) {
            		res.push({
              			fromName: dataItem[0].name,
              			toName: dataItem[1].name,
              			coords: [fromCoord, toCoord],
            		});
          		}
        	}
			return res;
      	};
		// 绘制图表
		myChart.setOption({
			// 容器背景颜色
			backgroundColor: '#404a59',
        	title: {
          		text: '飞机航线模拟',
          		subtext: '数据参考https://echarts.apache.org/examples/zh/editor.html?c=geo-lines',
          		textStyle: {
            		color: '#fff',
          		},
        	},
			geo: { // 地理坐标系组件
          		map: 'china',
          		label: {
            		show: false,
          		},
          		roam: true, // 是否开启鼠标缩放和平移漫游
          		itemStyle: { // 地图区域的多边形图形样式
            		areaColor: '#323c48', // 地图区域的颜色
            		borderColor: '#404a59', // 图形描边颜色
          		},
          		emphasis: { // 高亮状态下的多边形和标签样式
            		label: {
              			show: true,
              			color: '#fff',
            		},
            		itemStyle: {
              			areaColor: '#2a333d',
            		},
          		},
        	},
        	// 系列列表
        	series: [
          		{
            		type: 'lines', // 路径图
            		zlevel: 1, // 相当于分层,zlevel 大的 Canvas 会在上面 zlevel 小的 Canvas 上面
            		effect: { // 线特效的配置
              			show: true,
              			period: 6, // 特效动画的时间
              			trailLength: 0.7, // 特效尾迹的长度
              			color: '#fff',
              			symbolSize: 3, // 特效标记的大小
            		},
            		lineStyle: {
                		color: '#F5A623',
               	 		width: 0,
                		opacity: 0.6,
                		curveness: 0.2,
            		},
            		data: convertData(BJData),
          		},
          		{
            		type: 'lines',
            		zlevel: 2,
            		symbol: ['none', 'arrow'],
            		symbolSize: 10,
            		effect: {
              			show: true,
              			period: 6,
              			trailLength: 0,
              			symbol: planePath,
              			symbolSize: 15,
            		},
            		lineStyle: {
                		color: '#F5A623',
                		width: 1,
                		opacity: 0.6,
                		curveness: 0.2,
            		},
            		data: convertData(BJData),
          		},
          		{
            		type: 'effectScatter', // 带涟漪特效动画的气泡图
            		coordinateSystem: 'geo', // 该系统使用的坐标系
            		zlevel: 2,
            		rippleEffect: { // 涟漪特效相关配置
              			brushType: 'stroke', // 波纹的绘制方式
            		},
            		label: {
              			show: true,
              			position: 'right',
              			formatter: '{b}',
            		},
            		symbolSize: function (val) {
              			return val[2] / 10;
            		},
            		itemStyle: {
              			color: '#F5A623',
            		},
            		data: BJData.map((dataItem) => {
              			return {
                			name: dataItem[1].name,
                			value: this.geoCoordMap[dataItem[1].name].concat([dataItem[1].value]),
              			};
            		}),
          		},
        	],
		})
	</script>
</body>

第二个:水球图

飞机图标 'path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705.06,1318.313z'
火图标 'path://M775.093 258.353c-116.478 35.083-137.803 134.53-130.29 197.693-83.093-103.15-79.681-221.81-79.681-392.763-266.493 106.12-204.517 412.087-212.487 505-67.03-57.94-79.696-196.38-79.696-196.38-70.76 38.453-106.242 141.147-106.242 224.447 0 201.437 154.599 364.724 345.303 364.724S857.303 797.787 857.303 596.35c0-119.71-83.218-174.931-82.21-337.997z'

更多的 svg 图标可前往阿里巴巴矢量图标库或者其他网站获取。
我拿阿里巴巴矢量图标库举个例子,选择一个喜欢的图标点击下载,选择复制 svg ,然后找个地方粘贴你所复制的内容,在复制的过来的内容中 path 标签内 d 等于的部分就是我们要的东西
在这里插入图片描述

<body style="width: 100vw;height: 100vh;margin: 0;display: flex;align-items: center;justify-content: center;">
	// 承载图表的容器
	<div id="main" style="width: 90vw;height: 80vh;"></div>
	// 引入完全版echarts.js文件
	<script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.8.0/echarts.js"></script>
	// 引入echarts-liquidfill.js文件,已下载至本地根据路径引入
	<script src="./echarts-liquidfill.js"></script>
	<script type="text/javascript">
		// 基于准备好的dom,初始化echarts实例
		var myChart = echarts.init(document.getElementById('main'));
		// 鲸鱼图标
		var path = 'path://M367.855,428.202c-3.674-1.385-7.452-1.966-11.146-1.794c0.659-2.922,0.844-5.85,0.58-8.719 c-0.937-10.407-7.663-19.864-18.063-23.834c-10.697-4.043-22.298-1.168-29.902,6.403c3.015,0.026,6.074,0.594,9.035,1.728 c13.626,5.151,20.465,20.379,15.32,34.004c-1.905,5.02-5.177,9.115-9.22,12.05c-6.951,4.992-16.19,6.536-24.777,3.271 c-13.625-5.137-20.471-20.371-15.32-34.004c0.673-1.768,1.523-3.423,2.526-4.992h-0.014c0,0,0,0,0,0.014 c4.386-6.853,8.145-14.279,11.146-22.187c23.294-61.505-7.689-130.278-69.215-153.579c-61.532-23.293-130.279,7.69-153.579,69.202 c-6.371,16.785-8.679,34.097-7.426,50.901c0.026,0.554,0.079,1.121,0.132,1.688c4.973,57.107,41.767,109.148,98.945,130.793 c58.162,22.008,121.303,6.529,162.839-34.465c7.103-6.893,17.826-9.444,27.679-5.719c11.858,4.491,18.565,16.6,16.719,28.643 c4.438-3.126,8.033-7.564,10.117-13.045C389.751,449.992,382.411,433.709,367.855,428.202z';
		// 绘制图表
		myChart.setOption({
			series: [
          		{
            		type: 'liquidFill', // 水球图
            		data: [0.6, 0.55, 0.4, 0.25],
            		radius: '50%',
            		outline: { show: false }, // 外轮廓
            		// 水填充图的形状 circle圆形(默认)  rect矩形  roundRect圆角矩形  triangle三角形  diamond菱形  pin水滴状 arrow箭头状  container充满  还可以是svg的path
            		shape: path,
            		label: {
              			position: ['38%', '50%'], // 文本相对于图表的位置
              			textStyle: {
                			fontSize: 40,
                			color: '#D94854',
              			},
            		},
            	},
        	],
		})
	</script>
</body>

在这里插入图片描述

<body style="width: 100vw;height: 100vh;margin: 0;display: flex;align-items: center;justify-content: center;">
	// 承载图表的容器
	<div id="main" style="width: 90vw;height: 80vh;"></div>
	// 引入完全版echarts.js文件
	<script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.8.0/echarts.js"></script>
	// 引入echarts-liquidfill.js文件,已下载至本地根据路径引入
	<script src="./echarts-liquidfill.js"></script>
	<script type="text/javascript">
		// 基于准备好的dom,初始化echarts实例
		var myChart = echarts.init(document.getElementById('main'));
		// 鲸鱼图标
		var path = 'path://M775.093 258.353c-116.478 35.083-137.803 134.53-130.29 197.693-83.093-103.15-79.681-221.81-79.681-392.763-266.493 106.12-204.517 412.087-212.487 505-67.03-57.94-79.696-196.38-79.696-196.38-70.76 38.453-106.242 141.147-106.242 224.447 0 201.437 154.599 364.724 345.303 364.724S857.303 797.787 857.303 596.35c0-119.71-83.218-174.931-82.21-337.997z';
		// 绘制图表
		myChart.setOption({
			series: [
          		{
            		type: 'liquidFill',
            		data: [0.6, 0.55, 0.4, 0.25],
            		radius: '50%',
            		outline: { show: false },
            		backgroundStyle: { color: '#e51a19' }, // 图表背景颜色
            		itemStyle: { color: '#eb6a17' }, // 波浪颜色
            		shape: path,
            		label: {
              			position: ['52%', '63%'],
              			textStyle: {
                			fontSize: 40,
                			color: '#f4d526',
              			},
            		},
            	},
        	],
		})
	</script>
</body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值