通过上一节Echarts图的学习,为此做了一个简单的案例来巩固一下前端学习的知识。
最终要完成成果展示
具体代码以及注释详解我已经打包
由于文章限制,无法上传压缩包,放一部分具体代码,当然如果有需要压缩包可以DM,同时有问题可以评论或者DM都可以,无偿~ 仅仅作为交流学习
.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="js/echarts.min.js"></script>
<script src="js/china.js"></script>
<script src="js/index.js" defer></script>
<link rel="stylesheet" href="css/index.css">
</head>
<body>
<h1>软件工程岗位招聘信息</h1>
<div class="main">
<div class="left">
<div class="l1"></div>
<div class="l2"></div>
</div>
<div class="middle">
<ul class="top">
<li>
<h2>4234</h2>
<h3>岗位数量</h3>
</li>
<li>
<h2>上海</h2>
<h3>岗位最多的城市</h3>
</li>
<li>
<h2>广州</h2>
<h3>薪资最高的城市</h3>
</li>
<li>
<h2>字节跳动</h2>
<h3>岗位最多的公司</h3>
</li>
</ul>
<div class="bottom"></div>
</div>
<div class="right">
<div class="r1"></div>
<div class="r2"></div>
</div>
</div>
</body>
</html>
.js
(function() {
//左一
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.querySelector('.l1'));
// 指定图表的配置项和数据
option = {
// 标题
title: {
text: '工作经验要求',
textStyle: {
color: "#fff",
},
},
// 提示框组件。
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
//x轴相关设置
xAxis: {
type: 'category',
data: ['经验不限', '1-3年', '3-5年', '5-10年', '10年以上'],
axisLabel: {
color: "rgb(185,184,206)"
}
},
// y轴相关设置
yAxis: {
type: 'value',
axisLabel: {
color: "rgb(185,184,206)"
},
//修改背景线条样式
splitLine: {
show: true,
lineStyle: {
color: "rgb(72,71,83)"
}
}
},
series: [{
data: [358, 426, 876, 523, 70],
type: 'bar',
//柱子宽度
barWidth: '50%'
}],
//颜色
color: ['rgb(51,152,219)'],
//网格配置
grid: {
//配合left right top bottom 设置图表的大小
left: '3%',
right: '8%',
bottom: '5%',
//网格区域是否包含坐标轴的刻度标签 true:包含 false:不包含
containLabel: true
},
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
//绑定事件 当浏览器窗口发生改变时运行
window.addEventListener("resize", function() {
myChart.resize()
})
})();
(function() {
//左二
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.querySelector('.l2'));
// 指定图表的配置项和数据
option = {
// 标题
title: {
text: '学历要求',
textStyle: {
color: "#fff",
},
},
tooltip: {
trigger: 'item'
},
legend: {
top: '5%',
left: 'center'
},
series: [{
name: 'Access From',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: 40,
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: [
{ value: 1048, name: '本科' },
{ value: 735, name: '硕士' },
{ value: 580, name: '博士' },
{ value: 484, name: '专科及以下' },
]
}],
//颜色
color: ['rgb(73,146,255)', 'rgb(136,255,195)', 'rgb(253,221,96)', 'rgb(255,110,118)'],
legend: {
top: '5%',
textStyle: {
color: 'rgb(172,171,194)'
}
}
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
window.addEventListener("resize", function() {
myChart.resize()
})
})();
(function() {
//右一
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.querySelector('.r1'));
// 指定图表的配置项和数据
option = {
// 标题
title: {
text: '平均薪资最多的前五名城市',
textStyle: {
color: "#fff",
},
},
xAxis: {
type: 'category',
data: ['上海', '北京', '深圳', '广州', '杭州'],
axisLabel: {
color: "rgb(175,174,197)"
}
},
yAxis: {
type: 'value',
//修改坐标轴
axisLabel: {
color: "rgb(175,174,197)"
},
//修改背景线条样式
splitLine: {
show: true,
lineStyle: {
color: "rgb(72,71,83)"
}
}
},
//网格配置
grid: {
//配合left right top bottom 设置图表的大小
left: '3%',
right: '8%',
bottom: '5%',
//网格区域是否包含坐标轴的刻度标签 true:包含 false:不包含
containLabel: true
},
// 提示框组件。
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
series: [{
data: [33468, 27907, 31490, 48702, 31943],
type: 'line',
areaStyle: {
color: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0,
color: 'blue' // 0% 处的颜色
}, {
offset: 1,
color: 'transparent' // 100% 处的颜色
}],
global: false // 缺省为 false
}
}
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
window.addEventListener("resize", function() {
myChart.resize()
})
})();
(function() {
//右二
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.querySelector('.r2'));
// 指定图表的配置项和数据
option = {
// 标题
title: {
text: '2024最近半年岗位需求变化',
textStyle: {
color: "#fff",
},
},
xAxis: {
type: 'category',
data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月'],
axisLabel: {
color: "rgb(175,174,197)"
}
},
yAxis: {
type: 'value',
//修改坐标轴
axisLabel: {
color: "rgb(175,174,197)"
},
//修改背景线条样式
splitLine: {
show: true,
lineStyle: {
color: "rgb(72,71,83)"
}
},
//是否显示坐标轴轴线
axisLine: {
show: true
}
},
series: [{
data: [820, 232, 901, 934, 1290, 1330, 720],
type: 'line',
smooth: true
}],
//网格配置
grid: {
//配合left right top bottom 设置图表的大小
left: '3%',
right: '8%',
bottom: '5%',
//网格区域是否包含坐标轴的刻度标签 true:包含 false:不包含
containLabel: true
},
// 提示框组件。
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
window.addEventListener("resize", function() {
myChart.resize()
})
})(); //立即执行函数(匿名函数)
(function() {
//地图
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.querySelector('.bottom'));
// 指定图表的配置项和数据
// 指定图表的配置项和数据
option = {
//标题样式
title: {
text: "全国岗位分布图",
textStyle: {
color: 'rgb(255,215,0)',
},
left: 'center',
top: '18%'
},
tooltip: {
trigger: 'item'
},
visualMap: { // 左侧小导航图标
show: true,
x: 'left',
y: 'bottom',
textStyle: {
fontSize: 9,
color: 'rgb(185,184,206)'
},
splitList: [{
start: 1,
end: 9
},
{
start: 10,
end: 99
},
{
start: 100,
end: 999
},
{
start: 1000,
end: 9999
},
{
start: 10000,
},
],
color: ['#334271', '#4d619d', '#6e8adf', '#94d7f1', '#cdeaf6']
},
series: [{
name: '岗位人数',
type: 'map',
mapType: 'china',
roam: true, // 禁用拖动和缩放
itemStyle: { // 图形样式
normal: {
borderWidth: .5, //区域边框宽度
borderColor: '#009fe8', //区域边框颜色
// areaColor: "#ffefd5", //区域颜色
},
emphasis: { // 鼠标滑过地图高亮的相关设置
borderWidth: .5,
borderColor: '#4b0082',
// areaColor: "#fff",
}
},
label: { // 图形上的文本标签
normal: {
show: true, //省份名称
fontSize: 8,
},
emphasis: { // 鼠标滑过地图高亮的相关设置
show: true,
fontSize: 12,
}
},
data: [
{ 'name': '湖北', 'value': 628 },
{ 'name': '香港', 'value': 418 },
{ 'name': '台湾', 'value': 596 },
{ 'name': '上海', 'value': 13814 },
{ 'name': '北京', 'value': 14218 },
{ 'name': '广东', 'value': 3150 },
{ 'name': '福建', 'value': 3180 },
{ 'name': '内蒙古', 'value': 318 },
{ 'name': '天津', 'value': 3311 },
{ 'name': '澳门', 'value': 2117 },
{ 'name': '浙江', 'value': 2418 },
{ 'name': '江苏', 'value': 4818 },
{ 'name': '四川', 'value': 916 },
{ 'name': '山东', 'value': 1316 },
{ 'name': '辽宁', 'value': 2481 },
{ 'name': '云南', 'value': 318 },
{ 'name': '河北', 'value': 1568 },
{ 'name': '黑龙江', 'value': 204 },
{ 'name': '陕西', 'value': 534 },
{ 'name': '甘肃', 'value': 324 },
{ 'name': '吉林', 'value': 418 },
{ 'name': '山西', 'value': 455 },
{ 'name': '重庆', 'value': 897 },
{ 'name': '河南', 'value': 594 },
{ 'name': '湖南', 'value': 1337 },
{ 'name': '江西', 'value': 1318 },
{ 'name': '贵州', 'value': 456 },
{ 'name': '广西', 'value': 518 },
{ 'name': '安徽', 'value': 1208 },
{ 'name': '海南', 'value': 480 },
{ 'name': '宁夏', 'value': 875 },
{ 'name': '新疆', 'value': 50 },
{ 'name': '西藏', 'value': 7 },
{ 'name': '青海', 'value': 8 },
]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
window.addEventListener("resize", function() {
myChart.resize()
})
})()