ECharts在vue中使用 与 图表自适应

news2024/10/7 16:25:54

目录

使用思路:

Echarts在vue中使用

引入 ECharts

绘制图表实例(复杂)

实例效果:

官方入门实例(简单)

官方入门实例效果 

​编辑

图表自适应


ECharts 的功能十分强大,可以生成多种形式的图表,配置项十分灵活,可以根据实际需求自由定制
官方文档: https://www.echartsjs.com/examples/

使用思路:

问题 + 浏览器搜索 + 官方配置项手册对应字段查找 = 结果

当我们绘制图表时总是会需要自己配置一些样式效果,而官方API又难以查找,新手可以将想要查找的效果样式在浏览器中搜索,根据搜索结果的提示去设置或再去官方配置项手册搜索查找对应项配置。

Echarts在vue中使用

首先在项目中安装Echarts

npm install echarts --save

引入 ECharts

全局引入

  • main.js
// 引入echarts
import echarts from 'echarts'

Vue.prototype.$echarts = echarts 

所需组件单个引入

import * as echarts from "echarts";

绘制图表实例(复杂)

<template>
	<div class="conentTop">
		<div id="pieChart" :style="{ width: '49%', height: '100%' }"></div> 
		<div id="barChart" :style="{ width: '49%', height: '100%' }"></div>
	</div>
</template>
<script>
import * as echarts from "echarts";
export default {
	name: 'topEcharts',
	data() {
		return {

		}
	},
	mounted() { // 挂载后获取Dom渲染图表
		this.drawLine();
		this.drawLineTow();
	},
	methods: {
		// 饼图
		drawLine() {
			// 基于准备好的dom,初始化echarts实例
			let pieChart = echarts.init(document.getElementById('pieChart'))
			// 绘制饼状图表
			pieChart.setOption({
				title: {
					text: '问题类型',
					left: 'left'
				},
				series: [
					{
						type: 'pie',
						showEmptyCircle: false,//是否显示占位圆
						data: [
							{
								value: 8,
								name: '延误较大',
							},
							{
								value: 14,
								name: '失衡'
							},
							{
								value: 16,
								name: '校时异常'
							},
							{
								value: 20,
								name: '空放'
							},
							{
								value: 24,
								name: '拥堵',
							},
						],
						radius: ['18%', '70%'],
						roseType: 'area',
						label: { //饼图上显示数值
							show: true,//数据为空时仍开启显示
							// position: 'top',//在上方显示
							textStyle: {//数值公共样式
								lineHeight: 24,
							},
							//数据名b 数据值c 百分比d {name}{time}表示为数值设置的类名 \n、\t为字符串转义符
							formatter: "{name|{b}}\n {time|{c}\t({d}%)}",
							rich: {//单独设置类样式
								name: {
									fontSize: 14,
									fontWeight: 'bold',
									color: '#000000',

								},
								time: {
									fontSize: 12,
									color: '#2F4683',
									fontWeight: 'bold',
								}
							},
						}
					},
					// 背景圆设置
					{
						type: 'pie',
						radius: [20, 126],
						emptyCircleStyle: {
							color: '#EDE8FE'
						}
					}
				]
			});
			window.addEventListener("resize", () => {
				pieChart.resize();
			});
		},
		// 柱形图
		drawLineTow() {
			// 基于准备好的dom,初始化echarts实例
			let barChart = echarts.init(document.getElementById('barChart'));
			// 绘制图表
			barChart.setOption({
				title: {
					text: '问题趋势',
					left: 'left',
					top: 'top',
				},
				tooltip: {},//悬浮提示
				color: [
					{
						type: 'linear',
						x: 0,
						y: 0,
						x2: 0,
						y2: 1,
						colorStops: [
							{ offset: 0, color: '#FCDB00FF' }, // 设置颜色渐变
							{ offset: 1, color: '#F7B500FF' }
						]
					},
				],
				xAxis: {
					// type:'time',
					// name:'x轴标题',
					axisTick: {
						show: false, //隐藏x轴刻度轴线
					},
					axisLine: {
						lineStyle: {
							color: "#638DFF7A"//x轴轴线颜色
						}
					},
					data: ["2022-12-01", "2022-12-02", "2022-12-03", "2022-12-04", "2022-12-05", "2022-12-06", "2022-12-07"],
				},
				yAxis: {
					type: 'value',
					axisLine: {//y轴样式
						show: true,//显示y轴线条
						lineStyle: {
							color: "#638DFF7A"//y轴轴线颜色
						}
					},
					splitLine: { //y轴分割线样式
						// show: true, // 默认值
						lineStyle: {
							type: "dashed", //虚线
							color: "#638DFF7A"
						}
					},
				},
				series: [
					{
						type: 'bar',
						barWidth: 30,
						data: [41, 58, 68, 100, 31, 39, 29],
					}
				],
			});
			// 图表自适应
			window.addEventListener("resize", () => {
				barChart.resize();
			});
		},
	}
}
</script>
<style scoped>
.conentTop {
	width: 100%;
	height: 409px;
	box-sizing: border-box;
	display: flex;
	justify-content: space-around;
	align-items: center;
	padding: 20px 0 16px 0;
}

#pieChart,
#barChart {
	box-sizing: border-box;
	padding-left: 23px;
	padding-top: 13px;
	background-color: #fff;
}
</style>

实例效果:

 若感觉上方实例太复杂可看下官方入门实例

官方入门实例(简单)

<template>
	<div>
		<div id="myChart" :style="{ width: '600px', height: '300px' }"></div>
	</div>
</template>
<script>
import * as echarts from "echarts";
export default {
	name: 'hello',
	data() {
		return {
			msg: 'Welcome to Your Vue.js App'
		}
	},
	mounted() {
		this.drawLine();
	},
	methods: {
		drawLine() {
			// 基于准备好的dom,初始化echarts实例
			let myChart = echarts.init(document.getElementById('myChart'))
			// 绘制图表
			myChart.setOption({
				title: {
					text: 'ECharts 入门示例'
				},
				tooltip: {},
				xAxis: {
					data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
				},
				yAxis: {},
				series: [
					{
						name: '销量',
						type: 'bar',
						data: [5, 20, 36, 10, 10, 20]
					}
				]
			});
		}
	}
}
</script>

官方入门实例效果 

 

图表自适应

实现图表自适应可使用一些百分比、rem、em、vh、vw等相对单位设置图表宽高。

并且结合官方resize方法即可。

官方方法

window.addEventListener("resize", () => {
				pieChart.resize(); // 图表实例变量名:pieChart
			});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/362812.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

xilinx FPGA在线调试方法总结(vivado+ila+vio)

本文主要介绍xilinx FPGA开发过程中常用的调试方法&#xff0c;包括ILA、VIO和TCL命令等等&#xff0c;详细介绍了如何使用。一、FPGA调试基本原则根据实际的输出结果表现&#xff0c;来推测可能的原因&#xff0c;再在模块中加ILA信号&#xff0c;设置抓信号条件&#xff0c;逐…

Java 比较器Comparable与Comparator的List集合排序使用

一、Collections类 Collections则是集合类的一个工具类/帮助类&#xff0c;其中提供了一系列静态方法&#xff0c;用于对集合中元素进行排序、搜索以及线程安全等各种操作。 用于集合排序的sort方法&#xff0c;此方法主要是通过Comparable或Comparator来实现排序。 (1) 根据其…

如何30天零基础入门网络安全?自学网络安全有哪些缺点?

网络安全的前景如何&#xff0c;盾叔已经说过很多遍了&#xff0c;今天专题是替一些想入门网络安全&#xff0c;但还迷茫不知所措的同学解一解惑。想30天零基础入门网络安全&#xff0c;这些你一定要搞清楚。 一、学习网络安全容易造成的误区 1、把编程当作目的&#xff0c;忽…

AI生成图像竟如此真实了?Stable Diffusion Model本地部署教程

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…

什么运动耳机好用性价比高、值得入手的五款运动耳机

在各类耳机当中&#xff0c;运动耳机可以说是使用场景针对性比较强的一类。毕竟运动场景对于耳机某些方面性能要求比较高&#xff0c;比如防水能力、佩戴稳定性等等&#xff0c;一般的非运动耳机是很难应用在运动场景中的。这时候一款好的运动耳机就很重要了&#xff0c;那么我…

I/O多路复用模型实现——epoll

epoll IO多路复用模型实现机制I/O多路复用epollepoll_create(int size)epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)epoll_wait(int epfd, struct epoll_event * events, int maxevents, int timeout)epoll eventepoll流程I/O多路复用 I/O 多路复用的本质…

悲观锁实现一人一单+jmeter并发测试

项目工程代码来自&#xff1a;https://mp.weixin.qq.com/s/nDhkmDHU_kqY-geDZrIOtw 核心代码 Service public class GoodsOrderServiceImpl extends ServiceImpl<GoodsOrderMapper, GoodsOrder> implements GoodsOrderService {Autowiredprivate IGoodsService goodsSe…

怎样从零基础学黑客

可以说想学黑客技术&#xff0c;要求你首先是一个“T”字型人才&#xff0c;也就是说电脑的所有领域你都能做的来&#xff0c;而且有一项是精通的。因此作为一个零基础的黑客爱好者来说&#xff0c;没有良好的基础是绝对不行的&#xff0c;下面我就针对想真正学习黑客的零基础朋…

CentOS yum报错问题汇总(持续更新)

一、为 repo AppStream 下载元数据失败1.错误现象为 repo ‘AppStream’ 下载元数据失败错误&#xff1a;为 repo ‘AppStream’ 下载元数据失败2.错误原因1.网络连接不上如果出现该错误&#xff0c;请先确保服务器可以正常连接互联网。可以ping一下百度的域名&#xff0c;能pi…

python小基础-更多请自学,或者某某教程-2023-2-21 小扒菜的自学之路【1】

python基础 基础学习 自己跟着菜鸟教程看的一些基础,会java或者js的话,1个半小时就可以over 好久没更新博客了,现在慢慢来发吧,基础内容不太多,自己理解会很快的(下面是一段个人的小经历,大家也可以看看,嘻嘻) 假期看了灵魂摆渡几部电视剧,无聊中收到了一个python爬虫公开课穷,…

华为OD机试 - 考古学家(C++) | 附带编码思路 【2023】

刷算法题之前必看 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:https://blog.csdn.net/hihell/category_12199283.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 华为OD机试题…

外贸人如何利用领英LinkedIn开拓海外市场?这七大妙招你要知道

在社交媒体大行其道的时代下&#xff0c;作为职场人士专用的LinkedIn&#xff08;领英&#xff09;在全球则拥有5亿高端会员&#xff0c;覆盖全球200多个国家&#xff0c;也是唯一一个在中国不受限制的国外社交平台&#xff0c;与Facebook、谷歌、苹果并称为“硅谷四巨头”。 …

二倍均值随机算法之抢拼手气红包场景应用

拼手气类的游戏&#xff0c;更能激发用户购物和社交的趣味性&#xff0c;以及游戏竞争心理&#xff0c;拼手气类的活动甚至可以影响人们消费心理。 拼手气红包就是最简单的例子&#xff0c;哪怕你手气红包只有0.01元&#xff0c;在众多竞争者中脱颖而出&#xff0c;抢到的那一刻…

Elasticsearch7.8.0版本进阶——多文档操作流程

目录一、多文档操作1.1、多文档操作的概述1.2、多文档操作与单文档模式区别二、用单个 mget 请求取回多个文档2.1、用单个 mget 请求取回多个文档的图解2.2、用单个 mget 请求取回多个文档的步骤三、bulk API 的模式请求取回多个文档3.1、bulk API 的模式请求取回多个文档的图解…

优炫数据库百城巡展,成都首站圆满举行

2月17日&#xff0c;由四川省大数据发展研究会、北京优炫软件股份有限公司联合举办的“首届四川省推进信息技术应用创新产业服务研讨会暨优炫数据库百城巡展成都首站隆重举行。此次活动是优炫数据库百城巡展的起点站&#xff0c;更是国产数据库市场美好乐章的一次强力鸣奏。 来…

HarmonyOS Connect认证测试

在HarmonyOS Connect生态产品的认证测试过程中&#xff0c;你是否存在这些疑问&#xff1a;认证流程具体包括哪些操作环节&#xff1f;如何根据实际场景选择合适的认证方式&#xff1f;如何选择认证测试标准的版本…… 本期FAQ为大家带来HarmonyOS Connect认证测试的常见问题…

ChatGPT类工具如何实现「降维打击」| 聊天机器人闭门研讨观点总结

导读随着ChatGPT出现&#xff0c;语言大模型的进步与对话交互方式相结合&#xff0c;正在搅动科研、产业&#xff0c;以及普通人的想象力。我们对智能的探索是正在步入决胜之局&#xff0c;还是仍在中场酣战&#xff1b;是需要精巧完备的一致系统&#xff0c;还是可以遵循实效至…

什么是网站ICP备案,什么样的网站需要办理ICP?

进入互联网时代&#xff0c;企业业务的展开或多或少都要接触网络&#xff0c;甚至也会在线上建立公司的业务平台。很多企业会选择建立一个网站来直接展现公司面貌和业务。在我们完成了搭建好网站的全部内容后&#xff0c;最重要的一步&#xff1a;在网站建成进入到上线展现时&a…

【无标题】10.货币系统

题目描述: 在网友的国度中共有 n 种不同面额的货币&#xff0c;第 i 种货币的面额为 a[i]&#xff0c;你可以 假设每一种货币都有无穷多张。为了方便&#xff0c;我们把货币种数为 n、 面额数组为 a[1..n] 的货币系统记作 (n,a)。 在一个完善的货币系统中&#xff0c;每一个非…

TCP/IP网络编程——关于 I/O 流分离的其他内容

完整版文章请参考&#xff1a; TCP/IP网络编程完整版文章 文章目录第 16 章 关于 I/O 流分离的其他内容16.1 分离 I/O 流16.1.1 2次 I/O 流分离16.1.2 分离「流」的好处16.1.3 「流」分离带来的 EOF 问题16.2 文件描述符的的复制和半关闭16.2.1 终止「流」时无法半关闭原因16.2…