行业可视化 簇状柱形图 饼图 玫瑰图 折线图玫瑰图 雷达图

编程入门 行业动态 更新时间:2024-10-27 12:38:59

行业可视化 簇状柱形图 饼图 <a href=https://www.elefans.com/category/jswz/34/1767233.html style=玫瑰图 折线图玫瑰图 雷达图"/>

行业可视化 簇状柱形图 饼图 玫瑰图 折线图玫瑰图 雷达图

  • 创建Vue项目

上一章已经学过相应内容,在此处不再赘述

  • 安装ECharts、vue-router和jQuery

安装echarts依赖包命令

npm install echarts(需要安装谁后面就填谁)

  • 搭建页面结构并配置路由

打开app.vue将默认的全部删除,然后再加上一些内容,形成下面的页面

(111只是加上为了测试而已)

将默认界面删除命令         *{padding:0;margin:0}

 第一步设置背景图,找到资料中的bg文件,放到vue-demo/src/assets的目录下

注意:背景图片存放在“/home/qingjiao/vue-info/bg/”文件夹中,请从此目录获取背景图片,获取到后,将图片存放在“/home/qingjiao/vue-demo/src/assets/”文件夹中。

然后对app.vue进行代码编写,使背景图平铺于整个页面上

为整个页面设置宽度和高度,并添加背景图片

width:100%;

height:770px;

background:url(./assets/bg.webp)no-repeat;

background-size:contain;

 

创建h2标题标签,并设置高度和行高为60像素,文本居中显示

<h2>交通运输物流行业数据可视化</h2>

h2{

color:#fff;

line-height:60px;

}

创建列表,使用router-link组件进行导航,通过传递to来指定链接,

 在交通可视化和物流可视化中加<a>和</a>

<ul>

<!--使用 rounter-link 组件进行导航 -->

<li><a><rounter-link to="/traffic">交通可视化</router-link></a></li>

<li><a><rounter-link to="/logistics">物流可视化</rounter-link></a></li>

</ul>

 并为导航添加样式,以及鼠标滑过时的效果

ul li{
float:left;
list-style:none;
margin-left:44px;
width:100px;
height:28px;
line-height:28px;
text-align:center;
/*字符之间的空间*/
letter-spacing:1px;
}
ul li a{
text-decoration:none;
color:#ddd;
font-size:12px;
cursor:pointer;
}
ul li a:hover{
color:#FF0000;
text-decoration:underline;
}

创建一个盒子,命名为pages,路由匹配到的组件将渲染在这里

 

<div class="pages" >

<!--渲染在这里 -->

<router-view></router-view>

</div>

 创建交通可视化和物流可视化的页面

2个页面分别为:(注意:需要在“/home/qingjiao/Desktop/vue-demo/src/”目录下新建一个“views”的目录,并将这2个文件存放在其中)
(1)Traffic.vue,用于展示交通可视化的相关图表
(2)Logistics.vue,用于展示物流可视化的相关图表

在vue-demo/src中新建views文件夹

代码需在实训文件夹src中找到并复制到上述新建的文件夹中

该删的删掉,不需要的注释掉

搭建结构样式

 前提已经安装了vue-router

import TrafficPage from "./views/Traffic.vue"
import LogisticsPage from "./views/Logistics.vue"
const routes = [
{ path:'/',component: TrafficPage },
{ path:'/traffic',component:TrafficPage },
{ parh:'/logistics',component:LogisticsPage }
]
const router = createRouter({
history: crearteWebHashHistory(),
routes: routes,
})
const app = createApp(App)
app.use(router)
app.mount('#app')

 所有文件全部代码

APP.vue

<template><h2>交通运输物流行业数据可视化</h2><ul><!--使用 router-link 组件进行导航 --><li><router-link to="/traffic">交通可视化</router-link></li><li><router-link to="/logistics">物流可视化</router-link></li> </ul><div class="pages"><!-- 渲染在这里 --><router-view></router-view></div> 
</template>
<script>export default {name: 'App'
}
</script><style>
*{padding:0;margin:0;
}
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;width:100%;height:770px;background:url(./assets/bg.webp) no-repeat;background-size: contain;
}
h2{color:#fff;line-height:60px;
}
ul{margin-left :508px;
}
ul li{float:left;list-style:none;margin-left:44px;width:100px;height:28px;line-height:28px;text-align:center;/*字符之间的空间*/letter-spacing:1px;
}
ul li a{text-decoration:none;color:#ddd;font-size:12px;cursor:pointer;
}
ul li a:hover{color:#FF0000;text-decoration:underline;
}
</style>

Traffic.vue

<template><div class="container1"> <!-- echarts图表绘制在这里 --><div id="canvas1" style="width: 650px;height:350px;"></div>    <div id="canvas2" style="width: 650px;height:350px;"></div>     </div> <div class="container2"><div id="canvas3" style="width: 420px;height:350px;"></div>    <div id="canvas4" style="width: 420px;height:350px;"></div><div id="canvas5" style="width: 420px;height:350px;"></div> </div>
</template><script>
export default {name: 'App',mounted () {}
}
</script><style>
.container1{height:340px;
}
#canvas1{float:left;
}
#canvas2{float:right;
}
.container2{height:360px;
}
#canvas3{float:left;
}
#canvas4{float:left;margin-left:40px;
}
#canvas5{float:right;
}
</style>

Logistics.vue

<template><div class="container1"> <!-- echarts图表绘制在这里 --><div id="canvas1" style="width: 650px;height:350px;"></div>    <div id="canvas2" style="width: 650px;height:350px;"></div>     </div> <div class="container2"><div id="canvas3" style="width: 415px;height:350px;"></div>    <div id="canvas4" style="width: 440px;height:350px;"></div><div id="canvas5" style="width: 415px;height:350px;"></div> </div>
</template><script>
export default {name: 'App',mounted () {}
}
</script><style>
.container1{height:340px;
}
#canvas1{float:left;
}
#canvas2{float:right;
}
.container2{height:360px;
}
#canvas3{float:left;
}
#canvas4{float:left;margin-left:60px;
}
#canvas5{float:right;
}
</style>

 main.js

import { createApp } from 'vue'
import App from './App.vue'// 导入 vue router
import { createRouter, createWebHashHistory } from 'vue-router'// 1. 定义路由组件.  
import TrafficPage from "./views/Traffic.vue"
import LogisticsPage from "./views/Logistics.vue"// 2. 定义一些路由映射
const routes = [{ path: '/', component: TrafficPage },{ path: '/traffic', component: TrafficPage },{ path: '/logistics', component: LogisticsPage }
]// 3. 创建路由实例并传递 `routes` 配置
const router = createRouter({// 4. 内部提供了 history 模式的实现。为了简单起见,我们在这里使用 hash 模式。history: createWebHashHistory(),routes: routes, // `routes: routes` 的缩写
})// 5. 创建并挂载根实例
// createApp(App).mount('#app')     
const app = createApp(App)// 确保 _use_ 路由实例使整个应用支持路由。
app.use(router)// 把App挂载到#app节点上
app.mount('#app')

绘制收费站收费量簇状柱形图-有动态请求数据

 第一步导入依赖包

 

第二步,将数据文件移放到相应位置

 

 请求数据

给中型车设平均值

 将X轴,Y轴改颜色文字颜色都为白色

 此代码为共性代码,后续只要出现X轴Y轴时都有可能会用到

设置图表标题title,图例legend,提示信息tooltip

// 根据准备好的dom初始化echarts实例var myChart1 = echarts.init(document.getElementById('canvas1'));var option1={title:{text:'收费站收费量',textStyle:{color:'#EDEDED',fontSize:14}},tooltip: {},legend: {data: ['小型车','中型车','大型车'],    // 要和series.name一致x:'center',y:'35px',textStyle: {fontSize: 12,color: '#EDEDED',},              },xAxis: {type: 'category',data: [],axisLine: {lineStyle: {color: '#EDEDED',},},},yAxis: {type: 'value',axisLine: {lineStyle: {color: '#EDEDED',},},},series: [{name: '小型车',type: 'bar',data: []},{name: '中型车',type: 'bar',data: [],markLine:{data:[{type:"average",name:"平均值"}]}},{name: '大型车',type: 'bar',data: []}]}myChart1.setOption(option1);//请求数据$.get('/bar.json').done(function (data) {// 填入数据myChart1.setOption({yAxis: {data: data.month},series: [{name: '小型车',data: data.small},{name: '中型车',data: data.middle},{name: '大型车',data: data.big}]});});

绘制不同运输方式的货流量折线图

 

 

 

 

// 根据准备好的dom初始化echarts实例var myChart2 = echarts.init(document.getElementById('canvas2'));var option2={title: {text: '不同运输方式的货流量',textStyle:{color:'#EDEDED',fontSize:14}},tooltip: {trigger: 'axis',},legend: {data: ['公路运输','铁路运输','水运','空运'],    // 要和series.name一致x:'center',y:'35px',textStyle: {fontSize: 12,color: '#EDEDED',},              },xAxis: {type: 'category',data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],axisLine: {lineStyle: {color: '#EDEDED',},},},yAxis: {type: 'value',axisLine: {lineStyle: {color: '#EDEDED',},},},series: [{name: '公路运输',type: 'line',data: [834,760,943,865,872,968,976,920,935,960,980,950],markPoint: { data: [ { type: 'min', name: '最小值' } ] },},{name: '铁路运输',type: 'line',data: [116,160,143,165,172,168,376,420,635,720,680,750],label: {show: true,position: 'top',textStyle: {fontSize: 12}}},{name: '水运',type: 'line',data: [55,59,60,65,72,68,76,90,95,100,110,130],markPoint: { data: [ { type: 'max', name: '最大值' } ] },},{name: '空运',type: 'line',data: [547,602,798,321,635,524,776,650,585,465,612,573]},]}myChart2.setOption(option2);

 绘制2022年月度客运量累计占比饼图

 

 

// 根据准备好的dom初始化echarts实例var myChart3 = echarts.init(document.getElementById('canvas3'));var option3={title: {text: '2022年月度客运量累计占比',textStyle:{color:'#EDEDED',fontSize:14}},tooltip : {trigger: 'item',formatter: "{a} <br/>{b} : {c} ({d}%)"},series:[{type: 'pie',radius: '50%',name: '客运量(亿人次)',data: [{ value: 18.7, name: '4月' },{ value: 22.4, name: '5月' },{ value: 27.6, name: '6月' },{ value: 33.8, name: '7月' },{ value: 39.9, name: '8月' }],emphasis: {itemStyle: {shadowBlur: 20,shadowColor: 'rgba(0, 0, 0, 0.5)'}},label: {normal: {show: true,formatter: '{b} : {d}%', // 格式化数值百分比输出},},// 修改字体颜色的代码beginitemStyle: {normal: {label: {textStyle: {color:'#EDEDED',fontSize: 12}}}}}]}myChart3.setOption(option3);

绘制本月较上月发生的交通事故雷达图

 

 

// 根据准备好的dom初始化echarts实例var myChart4 = echarts.init(document.getElementById('canvas4'));var option4={title: {text: '本月较上月发生的交通事故',textStyle:{color:'#EDEDED',fontSize:14}},tooltip: {},legend: {data: ['上月', '本月'],x:'right',y:'35px',textStyle: {fontSize: 12,color: '#EDEDED'}},radar: {indicator: [{ name: '闯红灯', max: 30 },{ name: '逆行', max: 10 },{ name: '违停', max: 30 },{ name: '闯禁行', max: 5 },{ name: '超速', max: 20 },{ name: '超载', max: 20 }],radius: 100,center: ['50%', '50%'],name:{ //修改indicator文字的颜色textStyle:{color:"#EDEDED"}}},series: [{type: 'radar',data: [{value: [15, 3, 22, 1, 12, 18],name: '上月'},{value: [13, 5, 14, 4, 10, 9],name: '本月'}]}]}myChart4.setOption(option4);

 绘制每年公共交通出行次数占比玫瑰图

 

 

// 根据准备好的dom初始化echarts实例var myChart5 = echarts.init(document.getElementById('canvas5'));var option5={title : {text: '每年公共交通出行次数占比',       // 主标题名称textStyle:{color:'#fff',fontSize:14}},tooltip : {trigger: 'item',formatter: "{a} <br/>{b} : {c} ({d}%)"},series : [{name:'出行次数',                    // 图表名称type:'pie',                         // 图表类型radius : [20, 100],                 // 图表内外半径大小center : ['50%', '45%'],            // 图表位置roseType : 'area',// 修改字体颜色的代码beginitemStyle: {normal: {label: {textStyle: {color:'#EDEDED',fontSize: 12}}}},data:[{value:1181, name:'2015年'},           // 变量对应的具体数据{value:1543, name:'2016年'},{value:1905, name:'2017年'},{value:2264, name:'2018年'},{value:2556, name:'2019年'},{value:2716, name:'2020年'},{value:3050, name:'2021年'}]}]}myChart5.setOption(option5);

 物流可视化

 

 

 

 

 

 

 

 

 

 柱折混合图

// 根据准备好的dom初始化echarts实例var myChart1 = echarts.init(document.getElementById('canvas1'));var option1={title:{text:'各分公司的运输成本与毛利',textStyle:{color:'#EDEDED',fontSize:14}},tooltip: {trigger: 'axis',},legend: {data:['成本','毛利'],x:'center',textStyle: {fontSize: 12,color: '#EDEDED',},        },xAxis: {data: ['上海', '北京', '浙江', '广东', '福建', '湖北', '安徽', '黑龙江', '山东', '吉林'],axisLine: {lineStyle: {color: '#EDEDED',},},},yAxis: {type: 'value',axisLine: {lineStyle: {color: '#EDEDED',},},},series: [{name: '成本',type: 'bar',barWidth : '50%',data: [4604.36, 4068.21, 3715.08, 3256.47, 2942.26, 3679.01, 5014.98, 3331.69, 4762.54, 2489.16]},{name: '毛利',type: 'line',smooth:true,data: [4043.05, 3521.98, 2915.73, 3007.15, 2801.07, 2936.32, 4610.01, 3054.89, 4456.81, 2223.97] }]}myChart1.setOption(option1);

 柱形图

// 根据准备好的dom初始化echarts实例var myChart2 = echarts.init(document.getElementById('canvas2'));var option2={title:{text:'不同运输方式的运送量',textStyle:{color:'#EDEDED',fontSize:14}},tooltip: {},xAxis: {type: 'category',data: ['国内空运', '城际专线', '城际快线', '新邦专线', '新邦快线','汽运专线', '汽运偏线'],axisLine: {lineStyle: {color: '#EDEDED',},},},yAxis: {type: 'value',axisLine: {lineStyle: {color: '#EDEDED',},},},series: [{name: '门店数量(万户)',type: 'bar',data: [17732, 39243, 21479, 32357, 34960, 15966, 36376],itemStyle: {// 条形图颜色color: 'orange'},barWidth:'40%',markLine:{data:[{type:"average",name:"平均值"}]}}]}myChart2.setOption(option2);

玫瑰图

// 根据准备好的dom初始化echarts实例var myChart3 = echarts.init(document.getElementById('canvas3'));var option3={title : {text: '各类型商品运输数量占比',       // 主标题名称textStyle:{color:'#EDEDED',fontSize:14}},tooltip : {trigger: 'item',formatter: "{a} <br/>{b} : {c} ({d}%)"},series : [{name:'出行次数',                    // 图表名称type:'pie',                         // 图表类型radius : [20, 100],                 // 图表内外半径大小center : ['50%', '45%'],            // 图表位置roseType : 'area',// 修改字体颜色的代码beginitemStyle: {normal: {label: {textStyle: {color:'#EDEDED',fontSize: 12}}}},data:[{value:174, name:'冷链化工危险品'},           // 变量对应的具体数据{value:178, name:'冷链化工品'},{value:181, name:'冷链普货'},{value:106, name:'常温化工危险品'},{value:201, name:'常温化工品'},{value:371, name:'常温普货'}]}]}myChart3.setOption(option3);

 条形图

// 根据准备好的dom初始化echarts实例var myChart4 = echarts.init(document.getElementById('canvas4'));var option4={title: {text: '全国便利店数量TOP10分布',textStyle:{color:'#EDEDED',fontSize:14}},tooltip: {},xAxis: {type: 'value',axisLine: {lineStyle: {color: '#EDEDED',},},},yAxis: {type: 'category',data: ['盐城市', '阜阳市', '丽水市', '上海市', '安庆市', '包头市', '石家庄市', '杭州市', '焦作市', '北京市'],axisLine: {lineStyle: {color: '#EDEDED',},},},series: [{name: '数量(万家)',type: 'bar',data: [2032, 2954, 3055, 3250, 3987, 4021, 5070, 6377, 7410, 8361],itemStyle: {// 条形图颜色color: '#8DD35F'},showBackground: true,backgroundStyle: {color: 'rgba(220, 220, 220, 0.3)'}}]}myChart4.setOption(option4);

更多推荐

行业可视化 簇状柱形图 饼图 玫瑰图 折线图玫瑰图 雷达图

本文发布于:2024-02-17 15:41:03,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1694534.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:玫瑰   行业   折线图   饼图   簇状柱形图

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!