Vue+Echarts 项目演练(下)收尾工作图表绘制

news/2024/4/25 15:58:05/文章来源:https://blog.csdn.net/dafsq/article/details/130345189

设置销售总量图表

中心容器地图设置

产品库存统计图

产品类别图表 

项目可视化完结-整体展示 

设置销售总量图表

        在第一个容器中进行图表设置

<template><div><h2>A</h2><div class="chart" id="oneChart">容纳后期的图表</div></div></template><script>import { inject, onMounted } from "vue";import axios from "axios"; // 引入 axiosexport default {setup() {let $echarts = inject("echarts");let $http = axios.create({baseURL: "http://localhost:3000", // 设置默认 base urltimeout: 5000, // 设置超时时间});//设置请求async function getState() {let chartData = await $http.get("/one/data"); // 调用 get 方法获取数据console.log(chartData);}onMounted(() => {//钩子函数//调用请求getState();let mc = $echarts.init(document.getElementById("oneChart")); //初始化图表mc.setOption({xAxis: {type: "value", //数值轴},yAxis: {type: "category", //类目轴},servies: [{type: "bar",},],});});return {getState,};},};</script><style scoped>h2{/* 48像素 */height: 0.6rem;color: #fff;line-height: 0.6rem;text-align: center;font-size: 0.25rem;}.chart{/* 高度360 */height: 4.5rem;background-color: gray;}</style>

         在控制台输出中查看请求的对象信息,我们可以看到需要的数据在charData中

        找到并在控制台输出

console.log(chartData.data.chartData1.chartData);

         在控制台中查看得到的对应数据

        处理与转换数据

        我们请求来的数据事一个数组对象 那么我们需要把x 轴的数据于 y 轴的数据取出来变成两个数组方便 echarts使用
引入reactive:

<template><div><h2>A</h2><div class="chart" id="oneChart">容纳后期的图表</div></div></template><script>import { inject, onMounted , reactive} from "vue";import axios from "axios"; // 引入 axiosexport default {setup() {let $echarts = inject("echarts");let $http = axios.create({ //设置基准路径baseURL: "http://localhost:3000", // 设置默认 base urltimeout: 5000, // 设置超时时间});//创建数据let data = reactive({});let xdata = reactive([]);let ydata = reactive([]);//处理数据function setData(){xdata = data.data.chartData1.chartData.map(v => v.title)ydata = data.data.chartData1.chartData.map(v => v.num)console.log(xdata)console.log(ydata)}//设置请求async function getState() {data = await $http.get("/one/data"); // 调用 get 方法获取数据//console.log(chartData.data.chartData1.chartData);}onMounted(() => {//钩子函数//调用请求getState().then(() => { //当请求完成调用//调用处理数据setData();})let mc = $echarts.init(document.getElementById("oneChart")); //初始化图表mc.setOption({xAxis: {type: "value", //数值轴},yAxis: {type: "category", //类目轴},servies: [{type: "bar",},],});});return {getState,data,xdata,ydata,setData};},};</script><style scoped>h2{/* 48像素 */height: 0.6rem;color: #fff;line-height: 0.6rem;text-align: center;font-size: 0.25rem;}.chart{/* 高度360 */height: 4.5rem;background-color: gray;}</style>

        在控制台中查看输出的处理后的数据

         将数据往页面中图表插入

将初始化图表放到页面加载后初始化,图表类目信息因依赖请求数据则放在请求数据调用中

<template><div><h2>销售总量</h2><div class="chart" id="oneChart">容纳后期的图表</div></div></template><script>import { inject, onMounted, reactive } from "vue";import axios from "axios"; // 引入 axiosexport default {setup() {let $echarts = inject("echarts");let $http = axios.create({//设置基准路径baseURL: "http://localhost:3000", // 设置默认 base urltimeout: 5000, // 设置超时时间});//创建数据let data = reactive({});let xdata = reactive([]);let ydata = reactive([]);//处理数据function setData() {xdata.value = data.data.chartData1.chartData.map((v) => v.title);ydata.value = data.data.chartData1.chartData.map((v) => v.num);console.log(xdata.value);console.log(ydata.value);}//设置请求async function getData() {try {data = await $http.get("/one/data"); // 调用 get 方法获取数据//console.log(chartData.data.chartData1.chartData);//调用处理数据setData();} catch (err) {// 处理请求错误console.error(err);}}onMounted(() => {let mc = $echarts.init(document.getElementById("oneChart")); //初始化图表//钩子函数//调用请求getData().then(() => {mc.setOption({xAxis: {type: "value", //数值轴},yAxis: {type: "category", //类目轴data: xdata.value,},series: [{type: "bar", //柱状图data: ydata.value,itemStyle:{normal:{barBorderRadius:[0,20,20,0] //设置柱形顶端为圆角} }},],});});});return { getData, data, xdata, ydata };},};</script><style scoped>h2 {/* 48像素 */height: 0.6rem;color: #fff;line-height: 0.6rem;text-align: center;font-size: 0.25rem;}.chart {/* 高度360 */height: 400px;width: 500px;background-color: white;}</style>

 ​​​        页面中查看第一个图表容器的效果

中心容器地图设置

 在public目录下新建map文件用于存放地图数据

数据0积分免费下载:https://download.csdn.net/download/dafsq/87723433?spm=1001.2014.3001.5501

         目录下创建中心容器组件文件

         因为文件在本项目之下所以直接在本地端口获取数据

         在主页面对该组件进行引用

<template><div><header><h1>可视化项目</h1></header><!--大容器--><section class="cot"><!-- 左容器 --><section class="itemLeft"><ItemPage><itmeA /></ItemPage><ItemPage><itmeB /></ItemPage></section><!-- 中容器 --><section class="itemCenter"><mapPage/></section><!-- 右容器 --><section class="itemRight"><ItemPage><itmeC /></ItemPage><ItemPage><itmeD /></ItemPage></section></section></div>
</template><script>
import ItemPage from "@/components/itemPage.vue";import itmeA from "@/components/itmeA.vue";
import itmeB from "@/components/itmeB.vue";
import itmeC from "@/components/itmeC.vue";
import itmeD from "@/components/itmeD.vue";
import mapPage from "@/components/mapPage.vue";import { inject } from "vue"; //引入inject接受数据
export default {setup() {//inject("名字")let $echarts = inject("echarts");console.log($echarts);let $http = inject("axios");console.log($http);},//调用组件components: {ItemPage,itmeA,itmeB,itmeC,itmeD,mapPage},
};
</script>

        对中间容器组件进行设置 

<template><div class="map"></div>
</template><script>
//引用
import axios from 'axios'; 
import { onMounted , reactive } from 'vue';export default {setup(){const mapData = reactive({}); // 将 mapData 定义为响应式对象async function getState(){const response = await axios.get('http://localhost:8080/map/china-cities.json'); // 获取响应结果mapData.data = response.data; // 将响应结果赋值给响应式对象的属性}onMounted(() =>{getState().then(() => {console.log(mapData) // 打印响应式数据})})// 返回响应式对象,以及获取请求数据的方法return{getState,mapData}}}
</script><style>
.map{width: 100%;height: 100%;
}
</style>

 查看控制台输出的页面信息 并找到数据

        渲染地图 

<template><div class="map" id="map"></div>
</template><script>
//引用
import axios from 'axios'; 
import { onMounted , reactive, inject } from 'vue';export default {setup(){let $echarts = inject("echarts");const mapData = reactive({}); // 将 mapData 定义为响应式对象async function getState(){const response = await axios.get('http://localhost:8080/map/china-cities.json'); // 获取响应结果mapData.data = response.data; // 将响应结果赋值给响应式对象的属性}onMounted(() =>{getState().then(() => {//console.log(mapData.data.features) // 打印响应式数据//设置地图$echarts.registerMap("china",mapData.data)let mc = $echarts.init(document.getElementById("map")) //初始化mc.setOption({geo:{map:"china"}})})})// 返回响应式对象,以及获取请求数据的方法return{getState,mapData}}}
</script><style>
.map{width: 100%;height: 100%;
}
</style>

产品月销统计分析图

        在组件B下面中进行产品统计图设置

                在控制台中查看数据 并找到需要的数据

<script setup>//引用模块import {inject,onMounted,reactive} from "vue";import axios from "axios"; // 引入 axiosconst $echarts = inject("echarts");const $http = axios.create({baseURL: "http://localhost:3000", // 设置默认 base urltimeout: 5000, // 设置超时时间});//定义数据存储变量let data = reactive({})//获取数据async function getState(){data = await $http({url:"/two/data"})console.log(data)}</script>

         在获取数据的函数中得到需要的具体数据并将其返回

//获取数据async function getState(){data = await $http({url:"/two/data"})//console.log(data)return data.data.chartData3.chartData}

        完成绘图设置

<template><div><h2>周销售图</h2><div class="chart" id="chart">容纳后期的图表</div></div></template><script setup>//引用模块import {inject,onMounted,reactive} from "vue";import axios from "axios"; // 引入 axiosconst $echarts = inject("echarts");const $http = axios.create({baseURL: "http://localhost:3000", // 设置默认 base urltimeout: 5000, // 设置超时时间});//定义数据存储变量let data = reactive({})//获取数据async function getState(){data = await $http({url:"/two/data"})//console.log(data)return data.data.chartData2.chartData}onMounted(() => {getState().then(() => {let mc = $echarts.init(document.getElementById("chart"))mc.setOption({legend:{},xAxis:{type:"category", //设置类目轴data:data.data.chartData2.chartData.day,},yAxis:{type:"value"},series:[{name:"服饰",type:"line",data:data.data.chartData2.chartData.num.Chemicals,},{name:"数码",type:"line",data:data.data.chartData2.chartData.num.Clothes,},{name:"家电",type:"line",data:data.data.chartData2.chartData.num.digit,},{name:"家居",type:"line",data:data.data.chartData2.chartData.num.Electrical,},{name:"日化",type:"line",data:data.data.chartData2.chartData.num.gear,}]})})})</script><style scoped>h2 {/* 48像素 */height: 0.6rem;color: #fff;line-height: 0.6rem;text-align: center;font-size: 0.25rem;}.chart {/* 高度360 */height: 400px;width: 500px;background-color: white;}</style>

        运行查看 

 产品库存统计图

        在组件C下面中进行产品库存统计图设置

         在控制台中查看数据 并找到需要的数据

    <script setup>//引用模块import {inject,onMounted,reactive} from "vue";import axios from "axios"; // 引入 axiosconst $echarts = inject("echarts");const $http = axios.create({baseURL: "http://localhost:3000", // 设置默认 base urltimeout: 5000, // 设置超时时间});//定义数据存储变量let data = reactive({})//获取数据async function getState(){data = await $http({url:"/three/data"})console.log(data)//return data.data.chartData3.chartData}</script>

         在获取数据的函数中得到需要的具体数据并将其返回

    //获取数据async function getState(){data = await $http({url:"/three/data"})//console.log(data)return data.data.chartData3.chartData}

         完成绘图设置

<template><div><h2>产品库存统计图</h2><div class="chart" id="chartO">容纳后期的图表</div></div></template><script setup>//引用模块import {inject,onMounted,reactive} from "vue";import axios from "axios"; // 引入 axiosconst $echarts = inject("echarts");const $http = axios.create({baseURL: "http://localhost:3000", // 设置默认 base urltimeout: 5000, // 设置超时时间});//定义数据存储变量let data = reactive({})//获取数据async function getState(){data = await $http({url:"/three/data"})//console.log(data)return data.data.chartData3.chartData}onMounted(() => {getState().then(() => {let mc = $echarts.init(document.getElementById("chartO"))mc.setOption({legend:{ //图例},series:[{type:"pie",data:data.data.chartData3.chartData,redius:[],//设置内外直径roseType:"area",//设置为兰丁格尔玫瑰图itemStyle:{borderRadius:10 //设置为圆角}},]})})})</script><style scoped>h2 {/* 48像素 */height: 0.6rem;color: #fff;line-height: 0.6rem;text-align: center;font-size: 0.25rem;}.chart {/* 高度360 */height: 400px;width: 500px;background-color: white;}</style>

        运行查看 

产品类别图表 

        在组件D下面中进行产品库存统计图设置

        在控制台中查看数据 并找到需要的数据

<template><div><h2>产品类别图表</h2><div class="chart" id="chartD">容纳后期的图表</div></div></template><script setup>//引用模块import {inject,onMounted,reactive} from "vue";import axios from "axios"; // 引入 axiosconst $echarts = inject("echarts");const $http = axios.create({baseURL: "http://localhost:3000", // 设置默认 base urltimeout: 5000, // 设置超时时间});//定义数据存储变量let data = reactive({})//获取数据async function getState(){data = await $http({url:"/four/data"})//console.log(data)return data.data.chartData4.chartData}onMounted(() => {getState().then(() => {let mc = $echarts.init(document.getElementById("chartD"))mc.setOption({legend:{ //图例},})})})</script>

 完成绘图设置

<template><div><h2>产品类别图表</h2><div class="chart" id="chartD">容纳后期的图表</div></div></template><script setup>//引用模块import {inject,onMounted,reactive} from "vue";import axios from "axios"; // 引入 axiosconst $echarts = inject("echarts");const $http = axios.create({baseURL: "http://localhost:3000", // 设置默认 base urltimeout: 5000, // 设置超时时间});//定义数据存储变量let data = reactive({})//获取数据async function getState(){data = await $http({url:"/four/data"})//console.log(data)return data.data.chartData4.chartData}onMounted(() => {getState().then(() => {let mc = $echarts.init(document.getElementById("chartD"))mc.setOption({legend:{ //图例},xAxis:{type:"category",//设为类目轴data:data.data.chartData4.chartData.day,},yAxis:{type:"value",},series:[{name:"服饰",type:"bar",data:data.data.chartData4.chartData.num.Clothes},{name:"数码",type:"bar",data:data.data.chartData4.chartData.num.digit},{name:"家电",type:"bar",data:data.data.chartData4.chartData.num.Electrical},{name:"家居",type:"bar",data:data.data.chartData4.chartData.num.gear},{name:"日化",type:"bar",data:data.data.chartData4.chartData.num.Chemicals}]})})})</script><style scoped>h2 {/* 48像素 */height: 0.6rem;color: #fff;line-height: 0.6rem;text-align: center;font-size: 0.25rem;}.chart {/* 高度360 */height: 400px;width: 500px;background-color: white;}</style>

         运行查看 

项目可视化完结-整体展示 

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT进化的过程简介

Chat GPT可以做什么&#xff1f; 分点列条的回答问题 写代码或SQL 翻译 语法检查 ChatGPT官方还未公开论文&#xff0c;ChatGPT有一个“孪生兄弟”InstructGPT&#xff0c;InstructGPT有论文&#xff0c;可以根据InstructGPT论文推导ChatGPT的训练过程&#xff1a; ChatGPT的…

MySQ基础知识整合

目录 模糊查询 排序 单行函数 多行函数 分组函数 having 单表查询执行顺序总结 distinct 连接查询 子查询 union limit DQL语句执行顺序 DDL语句 日期化 date和date_format区别 update table 的快速创建以及删除&#xff08;及回滚&#xff09; 约束 事务 …

Vector-常用CAN工具 - 入门到精通 - 专栏链接

一、CANoe篇 1、CANoe入门到精通_软件安装 2、CANoe入门到精通_硬件及环境搭建 3、CANoe入门到精通_软件环境配置 4、CANoe入门到精通_Network Node CAPL开发 5、CANoe入门到精通_Node节点开发基本数据类型 6、CANoe入门到精通_Test Node节点开发设置 7、CANoe入门到精通…

缩小数据文件

今天又出现12.2c 环境的问题&#xff0c;1T的数据空间还剩下2G&#xff0c;吓了一身冷汗&#xff0c;赶紧查看原因&#xff0c;不知道哪路业务大神作妖了。 发现sysaux和system增加N多数据文件&#xff0c;而且目前使用不多&#xff0c; 缩小表空间的数据文件 可以使用下面的语…

【python中的魔法方法有哪些?】

__init__(self, ...): 类的构造函数&#xff0c;用于创建一个类的实例并初始化它的属性。__str__(self): 返回对象的字符串表示形式&#xff0c;可以用于打印对象或者转化成字符串。__repr__(self): 返回对象的字符串表示形式&#xff0c;通常是用于开发者调试和查看对象信息。…

【FPGA-DSP】第九期:音频信号处理

从本文开始将记录一些简单的音频信号处理算法在System Generator中的实现方法。本文将介绍如何搭建音频信号的采集与输出模型。 音频信号属于一维信号&#xff0c;一些基本概念如下&#xff1a; 采样频率&#xff1a;根据奈奎斯特采样定理&#xff0c;采样频率Fs应该不低于声…

【C语言】基础语法5:数组和指针

上一篇&#xff1a;函数和递归 下一篇&#xff1a;字符串和字符处理 ❤️‍&#x1f525;前情提要❤️‍&#x1f525;   欢迎来到C语言基本语法教程   在本专栏结束后会将所有内容整理成思维导图&#xff08;结束换链接&#xff09;并免费提供给大家学习&#xff0c;希望…

记一次死锁问题

最近在做一个需求&#xff0c;碰到了死锁的问题&#xff0c;记录下解决问题的过程 背景 这个需求要改动一个接口&#xff0c;我这边称为A接口&#xff0c;原先的逻辑是A接口内部会调用c方法&#xff0c;c方法是一个dubbo方法&#xff0c; 现在需要再A接口里添加调用B方法&…

【ROS】ubuntu18.04安装ROS(ROS1 Melodic)

1、添加中科大ROS源 1.1、添加源 sudo sh -c . /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ lsb_release -cs main" > /etc/apt/sources.list.d/ros-latest.list1. 2、添加公钥 sudo apt-key adv --keyserver hkp://keyser…

编译预处理

编译预处理 1、宏定义1.1、 无参宏定义1.2、使用宏定义的优点1.3、宏定义注意点1.4、带参数的宏(重点)1.5、条件编译1.6、宏定义的一些巧妙用法(有用)1.7、结构体占用字节数的计算原则&#xff08;考题经常考&#xff0c;要会画图&#xff09;1.8、#在宏定义中的作用&#xff0…

ESP32设备驱动-BMM150数字地磁传感器驱动

BMM150数字地磁传感器驱动 文章目录 BMM150数字地磁传感器驱动1、BMM150介绍2、硬件准备3、软件准备4、驱动实现1、BMM150介绍 BMM150 是一款低功耗、低噪声的 3 轴数字地磁传感器,用于罗盘应用。 具有 1.56 x 1.56 mm 和 0.60 mm 高度的 12 引脚晶圆级芯片级封装 (WLCSP) 为…

直升机空气动力学基础--004翼型的阻力

来源 1. 空气的粘性 2.阻力的产生 3.形成因素 4.阻力系数曲线

转换json格式的日期为Javascript对象的函数

项目中碰到了用jQuery从后台获取的json格式的日期的字符串&#xff0c;需要将此字符串转换成JavaScript的日期对象。 代码如下: //转换json格式的日期&#xff08;如&#xff1a;{ServerDatetime:"\/Date(1278930470649)\/"}&#xff09;为Javascript的日期对象 fu…

Linux tail 命令

前言 Linux 实时查看日志文件&#xff0c;最主要使用的就是tail命令。 linux tail命令用于显示文件尾部的内容&#xff0c;默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个&#xff0c;则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”…

湿法冶金以及铼提取工艺,湿法冶金工艺特点及工艺流程

湿法冶金是利用浸出剂在一定温度压力下与矿石接触&#xff0c;把矿石中有用的金属溶解后再从溶液中回收有价金属的一种工艺&#xff0c;因为其过程大都是在水溶液中进行&#xff0c;所以又被称为“水法冶金”。 01 湿法冶金工艺特点及工艺流程 湿法冶金作为解决我国金属矿产资…

深度赋能产业数字化转型,蚂蚁集团数字化三件套亮相中国国际金融展

“十四五”规划纲要指出&#xff1a;加快推动数字产业化&#xff0c;推进产业数字化转型&#xff0c;实施“上云用数赋智”行动&#xff0c;推动数据赋能全产业链协同转型。明确提出了通过科技创新&#xff0c;加快产业数字化转型的要求。 4月25日&#xff0c;以“荟萃金融科技…

mybatisPlus·入门·贰

文章目录 1 简单CRUD接口1.1 根据id查询&#xff08;{id传参&#xff09;1.1.1 接口类直接继承IService1.1.2 controller直接调用方法 1.2 根据ids查询1.3 新增1.3.1 接口类直接继承IService1.3.2 controller直接调用方法 1.4 修改状态&#xff08;Query传参&#xff09;1.4.1 …

新版Fluent默认保存的h5文件无法用Tecplot打开的解决办法(亲试有效,评论区是重点)

文章目录 Ansys Fluent简介Fluent 输入/出 文件格式新版Fluent的输出压缩文件&#xff08;.cas.h5文件&#xff09;解决办法 Ansys Fluent简介 Ansys Fluent &#xff0c;是国际上比较流行的商用CFD软件包&#xff0c;在美国的市场占有率为60%&#xff0c;凡是和流体、热传递和…

NetXpert XG2帮您解决“布线安装与维护”难题

在传输大量数据时&#xff0c;光纤变得越来越重要&#xff0c;而铜缆在未来也将继续发挥重要作用&#xff0c;因此我们不仅要比较两种类型布线的优缺点&#xff0c;还要探究光纤传输中的错误来源。 测试光缆传输损耗的准确性对于故障排除至关重要&#xff0c;特别是在光纤情况下…

后台-husky提交代码规范使用

husky是一个git hook工具&#xff0c;可以帮助我们触发git提交的各个阶段&#xff1a;pre-commit、commit-msg、pre-push 1.如何使用husky呢&#xff1f; npx husky-init && npm installWindows安装不成功试试npx husky-init && npm install 2.git commit规范…