【基于ECharts 数据可视化展示相关配置表全】
可視化面板介紹
? 應(yīng)對現(xiàn)在數(shù)據(jù)可視化的趨勢,越來越多企業(yè)需要在很多場景(營銷數(shù)據(jù),生產(chǎn)數(shù)據(jù),用戶數(shù)據(jù))下使用,可視化圖表來展示體現(xiàn)數(shù)據(jù),讓數(shù)據(jù)更加直觀,數(shù)據(jù)特點(diǎn)更加突出。
下載echarts https://github.com/apache/incubator-echarts/tree/4.5.0
使用步驟:
引入echarts 插件文件到html頁面中
準(zhǔn)備一個具備大小的DOM容器
<div id="main" style="width: 600px;height:400px;"></div>
初始化echarts實(shí)例對象
var myChart = echarts.init(document.getElementById('main'));
指定配置項(xiàng)和數(shù)據(jù)(option)
var option = {
? ? xAxis: {
? ? ? ? type: 'category',
? ? ? ? data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
? ? },
? ? yAxis: {
? ? ? ? type: 'value'
? ? },
? ? series: [{
? ? ? ? data: [820, 932, 901, 934, 1290, 1330, 1320],
? ? ? ? type: 'line'
? ? }]
};
將配置項(xiàng)設(shè)置給echarts實(shí)例對象
myChart.setOption(option);
11-Echarts-基礎(chǔ)配置
這是要求同學(xué)們知道以下配置每個模塊的主要作用干什么的就可以了
需要了解的主要配置:series xAxis yAxis grid tooltip title legend color
series
系列列表。每個系列通過 type 決定自己的圖表類型
大白話:圖標(biāo)數(shù)據(jù),指定什么類型的圖標(biāo),可以多個圖表重疊。
xAxis:直角坐標(biāo)系 grid 中的 x 軸
boundaryGap: 坐標(biāo)軸兩邊留白策略 true,這時候刻度只是作為分隔線,標(biāo)簽和數(shù)據(jù)點(diǎn)都會在兩個刻度之間的帶(band)中間。
yAxis:直角坐標(biāo)系 grid 中的 y 軸
grid:直角坐標(biāo)系內(nèi)繪圖網(wǎng)格。
title:標(biāo)題組件
tooltip:提示框組件
legend:圖例組件
color:調(diào)色盤顏色列表
數(shù)據(jù)堆疊,同個類目軸上系列配置相同的stack值后 后一個系列的值會在前一個系列的值上相加。
option = {
? ? // color設(shè)置我們線條的顏色 注意后面是個數(shù)組
? ? color: ['pink', 'red', 'green', 'skyblue'],
? ? // 設(shè)置圖表的標(biāo)題
? ? title: {
? ? ? ? text: '折線圖堆疊123'
? ? },
? ? // 圖表的提示框組件?
? ? tooltip: {
? ? ? ? // 觸發(fā)方式
? ? ? ? trigger: 'axis'
? ? },
? ? // 圖例組件
? ? legend: {
? ? ? ?// series里面有了 name值則 legend里面的data可以刪掉
? ? },
? ? // 網(wǎng)格配置 ?grid可以控制線形圖 柱狀圖 圖表大小
? ? grid: {
? ? ? ? left: '3%',
? ? ? ? right: '4%',
? ? ? ? bottom: '3%',
? ? ? ? // 是否顯示刻度標(biāo)簽 如果是true 就顯示 否則反之
? ? ? ? containLabel: true
? ? },
? ? // 工具箱組件 ?可以另存為圖片等功能
? ? toolbox: {
? ? ? ? feature: {
? ? ? ? ? ? saveAsImage: {}
? ? ? ? }
? ? },
? ? // 設(shè)置x軸的相關(guān)配置
? ? xAxis: {
? ? ? ? type: 'category',
? ? ? ? // 是否讓我們的線條和坐標(biāo)軸有縫隙
? ? ? ? boundaryGap: false,
? ? ? ? data: ['星期一', '周二', '周三', '周四', '周五', '周六', '周日']
? ? },
? ? ?// 設(shè)置y軸的相關(guān)配置
? ? yAxis: {
? ? ? ? type: 'value'
? ? },
? ? // 系列圖表配置 它決定著顯示那種類型的圖表
? ? series: [
? ? ? ? {
? ? ? ? ? ? name: '郵件營銷',
? ? ? ? ? ? type: 'line',
? ? ? ? ? ?
? ? ? ? ? ? data: [120, 132, 101, 134, 90, 230, 210]
? ? ? ? },
? ? ? ? {
? ? ? ? ? ? name: '聯(lián)盟廣告',
? ? ? ? ? ? type: 'line',
? ? ? ? ? ? data: [220, 182, 191, 234, 290, 330, 310]
? ? ? ? },
? ? ? ? {
? ? ? ? ? ? name: '視頻廣告',
? ? ? ? ? ? type: 'line',
? ? ? ? ??
? ? ? ? ? ? data: [150, 232, 201, 154, 190, 330, 410]
? ? ? ? },
? ? ? ? {
? ? ? ? ? ? name: '直接訪問',
? ? ? ? ? ? type: 'line',
? ? ? ? ??
? ? ? ? ? ? data: [320, 332, 301, 334, 390, 330, 320]
? ? ? ? }
? ? ]
};
12- 柱狀圖圖表(兩大步驟)
官網(wǎng)找到類似實(shí)例, 適當(dāng)分析,并且引入到HTML頁面中
根據(jù)需求定制圖表
引入到html頁面中
// 柱狀圖1模塊
(function() {
? // 實(shí)例化對象
? let myChart = echarts.init(document.querySelector(".bar .chart"));
? // 指定配置和數(shù)據(jù)
? let option = {
? ? color: ["#3398DB"],
? ? tooltip: {
? ? ? trigger: "axis",
? ? ? axisPointer: {
? ? ? ? // 坐標(biāo)軸指示器,坐標(biāo)軸觸發(fā)有效
? ? ? ? type: "shadow" // 默認(rèn)為直線,可選為:'line' | 'shadow'
? ? ? }
? ? },
? ? grid: {
? ? ? left: "3%",
? ? ? right: "4%",
? ? ? bottom: "3%",
? ? ? containLabel: true
? ? },
? ? xAxis: [
? ? ? {
? ? ? ? type: "category",
? ? ? ? data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
? ? ? ? axisTick: {
? ? ? ? ? alignWithLabel: true
? ? ? ? }
? ? ? }
? ? ],
? ? yAxis: [
? ? ? {
? ? ? ? type: "value"
? ? ? }
? ? ],
? ? series: [
? ? ? {
? ? ? ? name: "直接訪問",
? ? ? ? type: "bar",
? ? ? ? barWidth: "60%",
? ? ? ? data: [10, 52, 200, 334, 390, 330, 220]
? ? ? }
? ? ]
? };
? // 把配置給實(shí)例對象
? myChart.setOption(option);
})();
根據(jù)需求定制
修改圖表柱形顏色 #2f89cf
修改圖表大小 top 為 10px bottom 為 4% grid決定我們的柱狀圖的大小
color: ["#2f89cf"],
grid: {
? left: "0%",
? top: "10px",
? right: "0%",
? bottom: "4%",
? containLabel: true
},
X軸相關(guān)設(shè)置 xAxis
文本顏色設(shè)置為 rgba(255,255,255,.6) 字體大小為 12px
X軸線的樣式 不顯示
// 設(shè)置x軸標(biāo)簽文字樣式
// x軸的文字顏色和大小 axisLabel: { color: "rgba(255,255,255,.6)", fontSize: "12" }, // x軸樣式不顯示 axisLine: { show: false // 如果想要設(shè)置單獨(dú)的線條樣式 // lineStyle: { // color: "rgba(255,255,255,.1)", // width: 1, // type: "solid" } }
- Y 軸相關(guān)定制
? - 文本顏色設(shè)置為 ? rgba(255,255,255,.6) ? 字體大小為 12px
? - Y 軸線條樣式 更改為 ?1像素的 ?rgba(255,255,255,.1) 邊框
? - 分隔線的顏色修飾為 ?1像素的 ?rgba(255,255,255,.1) ??
~~~JavaScript
// y 軸文字標(biāo)簽樣式
axisLabel: {
? ? ? color: "rgba(255,255,255,.6)",
? ? ? ?fontSize: "12"
},
?// y軸線條樣式
?axisLine: {
? ? ? lineStyle: {
? ? ? ? ?color: "rgba(255,255,255,.1)",
? ? ? ? ?// width: 1,
? ? ? ? ?// type: "solid"
? ? ? }
5232},
?// y 軸分隔線樣式
splitLine: {
? ? lineStyle: {
? ? ? ?color: "rgba(255,255,255,.1)"
? ? ?}
}
修改柱形為圓角以及柱子寬度 series 里面設(shè)置
series: [
? ? ? {
? ? ? ? name: "直接訪問",
? ? ? ? type: "bar",
? ? ? ? // 修改柱子寬度
? ? ? ? barWidth: "35%",
? ? ? ? data: [10, 52, 200, 334, 390, 330, 220],
? ? ? ? itemStyle: {
? ? ? ? ? // 修改柱子圓角
? ? ? ? ? barBorderRadius: 5
? ? ? ? }
? ? ? }
? ? ]
? };
更換對應(yīng)數(shù)據(jù)
// x軸中更換data數(shù)據(jù)
?data: [ "旅游行業(yè)","教育培訓(xùn)", "游戲行業(yè)", "醫(yī)療行業(yè)", "電商行業(yè)", "社交行業(yè)", "金融行業(yè)" ],
// series 更換數(shù)據(jù)
?data: [200, 300, 300, 900, 1500, 1200, 600]
讓圖表跟隨屏幕自適應(yīng)
? window.addEventListener("resize", function() {
? ? myChart.resize();
? });
13-柱狀圖2定制
官網(wǎng)找到類似實(shí)例, 適當(dāng)分析,并且引入到HTML頁面中
根據(jù)需求定制圖表
需求1: 修改圖形大小 grid
? // 圖標(biāo)位置
? ? grid: {
? ? ? top: "10%",
? ? ? left: "22%",
? ? ? bottom: "10%"
? ? },
需求2: 不顯示x軸
? ?xAxis: {
? ? ? show: false
? ? },
需求3: y軸相關(guān)定制
不顯示y軸線和相關(guān)刻度
//不顯示y軸線條
axisLine: {
? ? show: false
? ? ? ? },
// 不顯示刻度
axisTick: {
? ?show: false
},
y軸文字的顏色設(shè)置為白色
? ?axisLabel: {
? ? ? ? ? color: "#fff"
? ?},
需求4: 修改第一組柱子相關(guān)樣式(條狀)
name: "條",
// 柱子之間的距離
barCategoryGap: 50,
//柱子的寬度
barWidth: 10,
// 柱子設(shè)為圓角
itemStyle: {
? ? normal: {
? ? ? barBorderRadius: 20, ? ? ??
? ? }
},
設(shè)置第一組柱子內(nèi)百分比顯示數(shù)據(jù)
// 圖形上的文本標(biāo)簽
label: {
? ? normal: {
? ? ? ? ?show: true,
? ? ? ? ?// 圖形內(nèi)顯示
? ? ? ? ?position: "inside",
? ? ? ? ?// 文字的顯示格式
? ? ? ? ?formatter: "{c}%"
? ? ?}
},
設(shè)置第一組柱子不同顏色
// 聲明顏色數(shù)組
var myColor = ["#1089E7", "#F57474", "#56D0E3", "#F8B448", "#8B78F6"];
// 2. 給 itemStyle ?里面的color 屬性設(shè)置一個 返回值函數(shù)
? itemStyle: {
? ? ? ? ? normal: {
? ? ? ? ? ? barBorderRadius: 20, ?
? ? ? ? ? ? // params 傳進(jìn)來的是柱子對象
? ? ? ? ? ? console.log(params);
? ? ? ? ? ? // dataIndex 是當(dāng)前柱子的索引號
? ? ? ? ? ? return myColor[params.dataIndex];
? ? ? ? ? }
? ? ? ? ?
},
需求5: 修改第二組柱子的相關(guān)配置(框狀)
? ?? ? ? ?name: "框",
? ? ? ? type: "bar",
? ? ? ? barCategoryGap: 50,
? ? ? ? barWidth: 15,
? ? ? ? itemStyle: {
? ? ? ? ? ? color: "none",
? ? ? ? ? ? borderColor: "#00c1de",
? ? ? ? ? ? borderWidth: 3,
? ? ? ? ? ? barBorderRadius: 15
? ? ? ? },
? ? ? ? data: [19325, 23438, 31000, 121594, 134141, 681807]
? ? ? }
需求6: 給y軸添加第二組數(shù)據(jù)
yAxis: [
? ? ? {
? ? ? type: "category",
? ? ? data: ["印尼", "美國", "印度", "中國", "世界人口(萬)"],
? ? ? // 不顯示y軸的線
? ? ? axisLine: {
? ? ? ? show: false
? ? ? },
? ? ? // 不顯示刻度
? ? ? axisTick: {
? ? ? ? show: false
? ? ? },
? ? ? // 把刻度標(biāo)簽里面的文字顏色設(shè)置為白色
? ? ? axisLabel: {
? ? ? ? color: "#fff"
? ? ? }
? ? },
? ? ? {
? ? ? ? show: true,
? ? ? ? data: [702, 350, 610, 793, 664],
? ? ? ? ? ?// 不顯示y軸的線
? ? ? axisLine: {
? ? ? ? show: false
? ? ? },
? ? ? // 不顯示刻度
? ? ? axisTick: {
? ? ? ? show: false
? ? ? },
? ? ? ? axisLabel: {
? ? ? ? ? textStyle: {
? ? ? ? ? ? fontSize: 12,
? ? ? ? ? ? color: "#fff"
? ? ? ? ? }
? ? ? ? }
? ? ? }
? ? ],
需求7: 設(shè)置兩組柱子層疊以及更換數(shù)據(jù)
// 給series ?第一個對象里面的 添加?
yAxisIndex: 0,
// 給series ?第二個對象里面的 添加?
yAxisIndex: 1,
// series 第一個對象里面的data
data: [70, 34, 60, 78, 69],
// series 第二個對象里面的data
data: [100, 100, 100, 100, 100],
// y軸更換第一個對象更換data數(shù)據(jù)
data: ["HTML5", "CSS3", "javascript", "VUE", "NODE"],
// y軸更換第二個對象更換data數(shù)據(jù)
data:[702, 350, 610, 793, 664],
完整代碼:
// 柱狀圖2
(function() {
? var myColor = ["#1089E7", "#F57474", "#56D0E3", "#F8B448", "#8B78F6"];
? // 1. 實(shí)例化對象
? var myChart = echarts.init(document.querySelector(".bar2 .chart"));
? // 2. 指定配置和數(shù)據(jù)
? var option = {
? ? grid: {
? ? ? top: "10%",
? ? ? left: "22%",
? ? ? bottom: "10%"
? ? ? // containLabel: true
? ? },
? ? // 不顯示x軸的相關(guān)信息
? ? xAxis: {
? ? ? show: false
? ? },
? ? yAxis: [
? ? ? {
? ? ? ? type: "category",
? ? ? ? inverse: true,
? ? ? ? data: ["HTML5", "CSS3", "javascript", "VUE", "NODE"],
? ? ? ? // 不顯示y軸的線
? ? ? ? axisLine: {
? ? ? ? ? show: false
? ? ? ? },
? ? ? ? // 不顯示刻度
? ? ? ? axisTick: {
? ? ? ? ? show: false
? ? ? ? },
? ? ? ? // 把刻度標(biāo)簽里面的文字顏色設(shè)置為白色
? ? ? ? axisLabel: {
? ? ? ? ? color: "#fff"
? ? ? ? }
? ? ? },
? ? ? {
? ? ? ? data: [702, 350, 610, 793, 664],
? ? ? ? inverse: true,
? ? ? ? // 不顯示y軸的線
? ? ? ? axisLine: {
? ? ? ? ? show: false
? ? ? ? },
? ? ? ? // 不顯示刻度
? ? ? ? axisTick: {
? ? ? ? ? show: false
? ? ? ? },
? ? ? ? // 把刻度標(biāo)簽里面的文字顏色設(shè)置為白色
? ? ? ? axisLabel: {
? ? ? ? ? color: "#fff"
? ? ? ? }
? ? ? }
? ? ],
? ? series: [
? ? ? {
? ? ? ? name: "條",
? ? ? ? type: "bar",
? ? ? ? data: [70, 34, 60, 78, 69],
? ? ? ? yAxisIndex: 0,
? ? ? ? // 修改第一組柱子的圓角
? ? ? ? itemStyle: {
? ? ? ? ? barBorderRadius: 20,
? ? ? ? ? // 此時的color 可以修改柱子的顏色
? ? ? ? ? color: function(params) {
? ? ? ? ? ? // params 傳進(jìn)來的是柱子對象
? ? ? ? ? ? console.log(params);
? ? ? ? ? ? // dataIndex 是當(dāng)前柱子的索引號
? ? ? ? ? ? return myColor[params.dataIndex];
? ? ? ? ? }
? ? ? ? },
? ? ? ? // 柱子之間的距離
? ? ? ? barCategoryGap: 50,
? ? ? ? //柱子的寬度
? ? ? ? barWidth: 10,
? ? ? ? // 顯示柱子內(nèi)的文字
? ? ? ? label: {
? ? ? ? ? show: true,
? ? ? ? ? position: "inside",
? ? ? ? ? // {c} 會自動的解析為 數(shù)據(jù) ?data里面的數(shù)據(jù)
? ? ? ? ? formatter: "{c}%"
? ? ? ? }
? ? ? },
? ? ? {
? ? ? ? name: "框",
? ? ? ? type: "bar",
? ? ? ? barCategoryGap: 50,
? ? ? ? barWidth: 15,
? ? ? ? yAxisIndex: 1,
? ? ? ? data: [100, 100, 100, 100, 100],
? ? ? ? itemStyle: {
? ? ? ? ? color: "none",
? ? ? ? ? borderColor: "#00c1de",
? ? ? ? ? borderWidth: 3,
? ? ? ? ? barBorderRadius: 15
? ? ? ? }
? ? ? }
? ? ]
? };
? // 3. 把配置給實(shí)例對象
? myChart.setOption(option);
})();
14-折線圖1 人員變化模塊制作
官網(wǎng)找到類似實(shí)例, 適當(dāng)分析,并且引入到HTML頁面中
根據(jù)需求定制圖表
需求1: 修改折線圖大小,顯示邊框設(shè)置顏色:#012f4a,并且顯示刻度標(biāo)簽。
? ? // 設(shè)置網(wǎng)格樣式
? ? grid: {?
? ? ? top: '20%',
? ? ? left: '3%',
? ? ? right: '4%',
? ? ? bottom: '3%',
? ? ? show: true,// 顯示邊框
? ? ? borderColor: '#012f4a',// 邊框顏色
? ? ? containLabel: true // 包含刻度文字在內(nèi)
? ? },
需求2: 修改圖例組件中的文字顏色 #4c9bfd, 距離右側(cè) right 為 10%
?// 圖例組件
? ? legend: {
? ? ? textStyle: {
? ? ? ? color: '#4c9bfd' // 圖例文字顏色
? ? ? },
? ? ? right: '10%' // 距離右邊10%
? ? },
需求3: x軸相關(guān)配置
刻度去除
x軸刻度標(biāo)簽字體顏色:#4c9bfd
剔除x坐標(biāo)軸線顏色(將來使用Y軸分割線)
軸兩端是不需要內(nèi)間距 boundaryGap
? ? xAxis: {
? ? ? type: 'category',
? ? ? data: ["周一", "周二"],
?? ? ?axisTick: {
? ? ? ? ?show: false // 去除刻度線
? ? ? ?},
? ? ? ?axisLabel: {
? ? ? ? ?color: '#4c9bfd' // 文本顏色
? ? ? ?},
? ? ? ?axisLine: {
? ? ? ? ?show: false // 去除軸線
? ? ? ?},
? ? ? ?boundaryGap: false ?// 去除軸內(nèi)間距
? ? },
需求4: y軸的定制
刻度去除
字體顏色:#4c9bfd
分割線顏色:#012f4a
? ? yAxis: {
? ? ? type: 'value',
? ? ? axisTick: {
? ? ? ? show: false ?// 去除刻度
? ? ? },
? ? ? axisLabel: {
? ? ? ? color: '#4c9bfd' // 文字顏色
? ? ? },
? ? ? splitLine: {
? ? ? ? lineStyle: {
? ? ? ? ? color: '#012f4a' // 分割線顏色
? ? ? ? }
? ? ? }
? ? },
需求5: 兩條線形圖定制
顏色分別:#00f2f1 #ed3f35
把折線修飾為圓滑 series 數(shù)據(jù)中添加 smooth 為 true
? ? color: ['#00f2f1', '#ed3f35'],
?? ?series: [{
? ? ? name:'新增粉絲',
? ? ? data: [820, 932, 901, 934, 1290, 1330, 1320],
? ? ? type: 'line',
? ? ? // 折線修飾為圓滑
? ? ? smooth: true,
? ? ? },{
? ? ? name:'新增游客',
? ? ? data: [100, 331, 200, 123, 233, 543, 400],
? ? ? type: 'line',
? ? ? smooth: true,
? ? }]
需求6: 配置數(shù)據(jù)
// x軸的文字
xAxis: {
? type: 'category',
? data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
// 圖標(biāo)數(shù)據(jù)
? ? series: [{
? ? ? name:'新增粉絲',
? ? ? data: ?[24, 40, 101, 134, 90, 230, 210, 230, 120, 230, 210, 120],
? ? ? type: 'line',
? ? ? smooth: true
? ? },{
? ? ? name:'新增游客',
? ? ? data: [40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79], ? ??
? ? ? type: 'line',
? ? ? smooth: true
? ? ? }
? ? }]
需求7: 新增需求 點(diǎn)擊 2020年 2021年 數(shù)據(jù)發(fā)生變化
以下是后臺送過來數(shù)據(jù)(ajax請求過來的)
?var yearData = [
? ? ? {
? ? ? ? year: '2020', ?// 年份
? ? ? ? data: [ ?// 兩個數(shù)組是因?yàn)橛袃蓷l線
? ? ? ? ? ? ?[24, 40, 101, 134, 90, 230, 210, 230, 120, 230, 210, 120],
? ? ? ? ? ? ?[40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79]
? ? ? ? ? ]
? ? ? },
? ? ? {
? ? ? ? year: '2021', ?// 年份
? ? ? ? data: [ ?// 兩個數(shù)組是因?yàn)橛袃蓷l線
? ? ? ? ? ? ?[123, 175, 112, 197, 121, 67, 98, 21, 43, 64, 76, 38],
? ? ??? ??? ?[143, 131, 165, 123, 178, 21, 82, 64, 43, 60, 19, 34]
? ? ? ? ? ]
? ? ? }
? ? ?];
tab欄切換事件
點(diǎn)擊2020按鈕 需要把 series 第一個對象里面的data 換成 2020年對象里面data[0]
點(diǎn)擊2020按鈕 需要把 series 第二個對象里面的data 換成 2020年對象里面data[1]
2021 按鈕同樣道理
完整代碼:
// 折線圖1模塊制作
(function() {
? var yearData = [
? ? {
? ? ? year: "2020", // 年份
? ? ? data: [
? ? ? ? // 兩個數(shù)組是因?yàn)橛袃蓷l線
? ? ? ? [24, 40, 101, 134, 90, 230, 210, 230, 120, 230, 210, 120],
? ? ? ? [40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79]
? ? ? ]
? ? },
? ? {
? ? ? year: "2021", // 年份
? ? ? data: [
? ? ? ? // 兩個數(shù)組是因?yàn)橛袃蓷l線
? ? ? ? [123, 175, 112, 197, 121, 67, 98, 21, 43, 64, 76, 38],
? ? ? ? [143, 131, 165, 123, 178, 21, 82, 64, 43, 60, 19, 34]
? ? ? ]
? ? }
? ];
? // 1. 實(shí)例化對象
? var myChart = echarts.init(document.querySelector(".line .chart"));
? // 2.指定配置
? var option = {
? ? // 通過這個color修改兩條線的顏色
? ? color: ["#00f2f1", "#ed3f35"],
? ? tooltip: {
? ? ? trigger: "axis"
? ? },
? ? legend: {
? ? ? // 如果series 對象有name 值,則 legend可以不用寫data
? ? ? // 修改圖例組件 文字顏色
? ? ? textStyle: {
? ? ? ? color: "#4c9bfd"
? ? ? },
? ? ? // 這個10% 必須加引號
? ? ? right: "10%"
? ? },
? ? grid: {
? ? ? top: "20%",
? ? ? left: "3%",
? ? ? right: "4%",
? ? ? bottom: "3%",
? ? ? show: true, // 顯示邊框
? ? ? borderColor: "#012f4a", // 邊框顏色
? ? ? containLabel: true // 包含刻度文字在內(nèi)
? ? },
? ? xAxis: {
? ? ? type: "category",
? ? ? boundaryGap: false,
? ? ? data: [
? ? ? ? "1月",
? ? ? ? "2月",
? ? ? ? "3月",
? ? ? ? "4月",
? ? ? ? "5月",
? ? ? ? "6月",
? ? ? ? "7月",
? ? ? ? "8月",
? ? ? ? "9月",
? ? ? ? "10月",
? ? ? ? "11月",
? ? ? ? "12月"
? ? ? ],
? ? ? axisTick: {
? ? ? ? show: false // 去除刻度線
? ? ? },
? ? ? axisLabel: {
? ? ? ? color: "#4c9bfd" // 文本顏色
? ? ? },
? ? ? axisLine: {
? ? ? ? show: false // 去除軸線
? ? ? }
? ? },
? ? yAxis: {
? ? ? type: "value",
? ? ? axisTick: {
? ? ? ? show: false // 去除刻度線
? ? ? },
? ? ? axisLabel: {
? ? ? ? color: "#4c9bfd" // 文本顏色
? ? ? },
? ? ? axisLine: {
? ? ? ? show: false // 去除軸線
? ? ? },
? ? ? splitLine: {
? ? ? ? lineStyle: {
? ? ? ? ? color: "#012f4a" // 分割線顏色
? ? ? ? }
? ? ? }
? ? },
? ? series: [
? ? ? {
? ? ? ? name: "新增粉絲",
? ? ? ? type: "line",
? ? ? ? // true 可以讓我們的折線顯示帶有弧度
? ? ? ? smooth: true,
? ? ? ? data: yearData[0].data[0]
? ? ? },
? ? ? {
? ? ? ? name: "新增游客",
? ? ? ? type: "line",
? ? ? ? smooth: true,
? ? ? ? data: yearData[0].data[1]
? ? ? }
? ? ]
? };
? // 3. 把配置給實(shí)例對象
? myChart.setOption(option);
? // 4. 讓圖表跟隨屏幕自動的去適應(yīng)
? window.addEventListener("resize", function() {
? ? myChart.resize();
? });
? // 5.點(diǎn)擊切換效果
? $(".line h2").on("click", "a", function() {
? ? // alert(1);
? ? // console.log($(this).index());
? ? // 點(diǎn)擊 a 之后 根據(jù)當(dāng)前a的索引號 找到對應(yīng)的 yearData的相關(guān)對象
? ? // console.log(yearData[$(this).index()]);
? ? var obj = yearData[$(this).index()];
? ? option.series[0].data = obj.data[0];
? ? option.series[1].data = obj.data[1];
? ? // 需要重新渲染
? ? myChart.setOption(option);
? });
})();
15-折線圖2 播放量模塊制作
官網(wǎng)找到類似實(shí)例, 適當(dāng)分析,并且引入到HTML頁面中
根據(jù)需求定制圖表
需求1: 更換圖例組件文字顏色 rgba(255,255,255,.5) 文字大小為12
?legend: {
? ? ? top: "0%",
? ? ? textStyle: {
? ? ? ? color: "rgba(255,255,255,.5)",
? ? ? ? fontSize: "12"
? ? ? }
},
需求2: 修改圖表大小
grid: {
? ? ? left: "10",
? ? ? top: "30",
? ? ? right: "10",
? ? ? bottom: "10",
? ? ? containLabel: true
? ? },
需求3: 修改x軸相關(guān)配置
修改文本顏色為rgba(255,255,255,.6) 文字大小為 12
x軸線的顏色為 rgba(255,255,255,.2)
? ? ?// 文本顏色為rgba(255,255,255,.6) ?文字大小為 12
? ? ?axisLabel: {
? ? ? ? ? textStyle: {
? ? ? ? ? ? color: "rgba(255,255,255,.6)",
? ? ? ? ? ? fontSize: 12
? ? ? ? ? }
? ? ? ? },
? ? ? ? ?// x軸線的顏色為 ? rgba(255,255,255,.2)
? ? ? ? axisLine: {
? ? ? ? ? lineStyle: {
? ? ? ? ? ? color: "rgba(255,255,255,.2)"
? ? ? ? ? }
? ? ? ? },
需求4: 修改y軸的相關(guān)配置
? ? ? ? axisTick: { show: false },
? ? ? ? axisLine: {
? ? ? ? ? lineStyle: {
? ? ? ? ? ? color: "rgba(255,255,255,.1)"
? ? ? ? ? }
? ? ? ? },
? ? ? ? axisLabel: {
? ? ? ? ? textStyle: {
? ? ? ? ? ? color: "rgba(255,255,255,.6)",
? ? ? ? ? ? fontSize: 12
? ? ? ? ? }
? ? ? ? },
?? ? ? // 修改分割線的顏色
? ? ? ? splitLine: {
? ? ? ? ? lineStyle: {
? ? ? ? ? ? color: "rgba(255,255,255,.1)"
? ? ? ? ? }
? ? ? ? }
? ? ??
需求5: 修改兩個線模塊配置(注意在series 里面定制)
? ? ? ?//第一條 線是圓滑
? ? ? ?smooth: true,
? ? ? ? // 單獨(dú)修改線的樣式
? ? ? ? lineStyle: {
? ? ? ? ? ? color: "#0184d5",
? ? ? ? ? ? width: 2?
? ? ? ? },
? ? ? ? ?// 填充區(qū)域
? ? ? ? areaStyle: {
? ? ? ? ? ? ? // 漸變色,只需要復(fù)制即可
? ? ? ? ? ? color: new echarts.graphic.LinearGradient(
? ? ? ? ? ? ? 0,
? ? ? ? ? ? ? 0,
? ? ? ? ? ? ? 0,
? ? ? ? ? ? ? 1,
? ? ? ? ? ? ? [
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? offset: 0,
? ? ? ? ? ? ? ? ? color: "rgba(1, 132, 213, 0.4)" ? // 漸變色的起始顏色
? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? offset: 0.8,
? ? ? ? ? ? ? ? ? color: "rgba(1, 132, 213, 0.1)" ? // 漸變線的結(jié)束顏色
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ],
? ? ? ? ? ? ? false
? ? ? ? ? ? ),
? ? ? ? ? ? shadowColor: "rgba(0, 0, 0, 0.1)"
? ? ? ? },
? ? ? ? // 設(shè)置拐點(diǎn) 小圓點(diǎn)
? ? ? ? symbol: "circle",
? ? ? ? // 拐點(diǎn)大小
? ? ? ? symbolSize: 8,
? ? ? ? // 設(shè)置拐點(diǎn)顏色以及邊框
? ? ? ?itemStyle: {
? ? ? ? ? ? color: "#0184d5",
? ? ? ? ? ? borderColor: "rgba(221, 220, 107, .1)",
? ? ? ? ? ? borderWidth: 12
? ? ? ? },
? ? ? ? // 開始不顯示拐點(diǎn), 鼠標(biāo)經(jīng)過顯示
? ? ? ? showSymbol: false,
? ? ? ?name: "轉(zhuǎn)發(fā)量",
? ? ? ? type: "line",
? ? ? ? smooth: true,
? ? ? ? lineStyle: {
? ? ? ? ? normal: {
? ? ? ? ? ? color: "#00d887",
? ? ? ? ? ? width: 2
? ? ? ? ? }
? ? ? ? ?},
? ? ? ? ?areaStyle: {
? ? ? ? ? normal: {
? ? ? ? ? ? color: new echarts.graphic.LinearGradient(
? ? ? ? ? ? ? 0,
? ? ? ? ? ? ? 0,
? ? ? ? ? ? ? 0,
? ? ? ? ? ? ? 1,
? ? ? ? ? ? ? [
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? offset: 0,
? ? ? ? ? ? ? ? ? color: "rgba(0, 216, 135, 0.4)"
? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? offset: 0.8,
? ? ? ? ? ? ? ? ? color: "rgba(0, 216, 135, 0.1)"
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ],
? ? ? ? ? ? ? false
? ? ? ? ? ? ),
? ? ? ? ? ? shadowColor: "rgba(0, 0, 0, 0.1)"
? ? ? ? ? }
? ? ? ? },
? ? ? ? // 設(shè)置拐點(diǎn) 小圓點(diǎn)
? ? ? ? symbol: "circle",
? ? ? ? // 拐點(diǎn)大小
? ? ? ? symbolSize: 5,
? ? ? ? // 設(shè)置拐點(diǎn)顏色以及邊框
? ? ? ? ?itemStyle: {
? ? ? ? ? ? color: "#00d887",
? ? ? ? ? ? borderColor: "rgba(221, 220, 107, .1)",
? ? ? ? ? ? borderWidth: 12
? ? ? ? },
? ? ? ? // 開始不顯示拐點(diǎn), 鼠標(biāo)經(jīng)過顯示
? ? ? ? showSymbol: false,
需求6: 更換數(shù)據(jù)
// x軸更換數(shù)據(jù)
data: [ "01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","26","28","29","30"],
// series ?第一個對象data數(shù)據(jù)
?data: [ 30, 40, 30, 40,30, 40, 30,60,20, 40, 30, 40, 30, 40,30, 40, 30,60,20, 40, 30, 40, 30, 40,30, 40, 20,60,50, 40],
// series ?第二個對象data數(shù)據(jù)
?data: [ 130, 10, 20, 40,30, 40, 80,60,20, 40, 90, 40,20, 140,30, 40, 130,20,20, 40, 80, 70, 30, 40,30, 120, 20,99,50, 20],
16-餅形圖 1年齡分布模塊制作
官網(wǎng)找到類似實(shí)例, 適當(dāng)分析,并且引入到HTML頁面中
根據(jù)需求定制圖表
定制圖表需求1:
修改圖例組件在底部并且居中顯示。
每個小圖標(biāo)的寬度和高度修改為 10px
文字大小為12 顏色 rgba(255,255,255,.5)
?legend: {
? ? ? // 距離底部為0%
? ? ? bottom: "0%",
? ? ? // 小圖標(biāo)的寬度和高度
? ? ? itemWidth: 10,
? ? ? itemHeight: 10,
? ? ? data: ['直接訪問', '郵件營銷', '聯(lián)盟廣告', '視頻廣告', '搜索引擎'],
? ? ? // 修改圖例組件的文字為 12px
? ? ? textStyle: {
? ? ? ? color: "rgba(255,255,255,.5)",
? ? ? ? fontSize: "12"
? ? ? }
?},
定制需求2:
修改水平居中 垂直居中
修改內(nèi)圓半徑和外圓半徑為 ["40%", "60%"] pink老師友情提示,帶有直角坐標(biāo)系的比如折線圖柱狀圖是 grid修改圖形大小,而我們餅形圖是通過 radius 修改大小
series: [
? ? ? {
? ? ? ? name: "年齡分布",
? ? ? ? type: "pie",
? ? ? ? // 設(shè)置餅形圖在容器中的位置
? ? ? ? center: ["50%", "50%"],
? ? ? ? // ?修改內(nèi)圓半徑和外圓半徑為 ?百分比是相對于容器寬度來說的
? ? ? ? radius: ["40%", "60%"],
? ? ? ? // 不顯示標(biāo)簽文字
? ? ? ? label: { show: false },
? ? ? ? // 不顯示連接線
? ? ? ? labelLine: { show: false },
? ? ? }
? ? ]
定制需求3:更換數(shù)據(jù)
// legend 中的data ?可省略
data: ["0歲以下", "20-29歲", "30-39歲", "40-49歲", "50歲以上"],
// ?series 中的數(shù)據(jù)
?data: [
? ? ? ? ? { value: 1, name: "0歲以下" },
? ? ? ? ? { value: 4, name: "20-29歲" },
? ? ? ? ? { value: 2, name: "30-39歲" },
? ? ? ? ? { value: 2, name: "40-49歲" },
? ? ? ? ? { value: 1, name: "50歲以上" }
?] ,
定制需求4: 更換顏色
color: [
? ? ? ? ? "#065aab",
? ? ? ? ? "#066eab",
? ? ? ? ? "#0682ab",
? ? ? ? ? "#0696ab",
? ? ? ? ? "#06a0ab",
? ? ? ? ],
?// 4. 讓圖表跟隨屏幕自動的去適應(yīng)
? window.addEventListener("resize", function() {
? ? myChart.resize();
? });
17-餅形圖2 地區(qū)分布模塊制作(南丁格爾玫瑰圖)
官網(wǎng)找到類似實(shí)例, 適當(dāng)分析,并且引入到HTML頁面中
根據(jù)需求定制圖表
第二步:按照需求定制
需求1:顏色設(shè)置
color: ['#006cff', '#60cda0', '#ed8884', '#ff9f7f', '#0096ff', '#9fe6b8', '#32c5e9', '#1d9dff'],
需求2:修改餅形圖大小 ( series對象)
radius: ['10%', '70%'],
需求3: 把餅形圖的顯示模式改為 半徑模式
?roseType: "radius",
需求4:數(shù)據(jù)使用更換(series對象 里面 data對象)
? ? ? ? ? { value: 20, name: '云南' },
? ? ? ? ? { value: 26, name: '北京' },
? ? ? ? ? { value: 24, name: '山東' },
? ? ? ? ? { value: 25, name: '河北' },
? ? ? ? ? { value: 20, name: '江蘇' },
? ? ? ? ? { value: 25, name: '浙江' },
? ? ? ? ? { value: 30, name: '四川' },
? ? ? ? ? { value: 42, name: '湖北' }
需求5:字體略小些 10 px ( series對象里面設(shè)置 )
餅圖圖形上的文本標(biāo)簽可以控制餅形圖的文字的一些樣式。 label 對象設(shè)置
series: [
? ? ? {
? ? ? ? name: "面積模式",
? ? ? ? type: "pie",
? ? ? ? radius: [30, 110],
? ? ? ? center: ["50%", "50%"],
? ? ? ? roseType: "radius",
? ? ? ? // 文本標(biāo)簽控制餅形圖文字的相關(guān)樣式, 注意它是一個對象
? ? ? ? label: {
? ? ? ? ? fontSize: 10
? ? ? ? },
? ? ? }
? ? ]
? };
需求6:防止縮放的時候,引導(dǎo)線過長。引導(dǎo)線略短些 (series對象里面的 labelLine 對象設(shè)置 )
連接圖表 6 px
連接文字 8 px
+ ? ? ? ?// 文字調(diào)整
+ ? ? ? ?label:{
+ ? ? ? ? ?fontSize: 10
+ ? ? ? ?},
+ ? ? ? ?// 引導(dǎo)線調(diào)整
+ ? ? ? ?labelLine: {
+ ? ? ? ? ?// 連接扇形圖線長
+ ? ? ? ? ?length: 6,
+ ? ? ? ? ?// 連接文字線長
+ ? ? ? ? ?length2: 8
+ ? ? ? ?}?
+ ? ? ?}
+ ? ?],
需求6:瀏覽器縮放的時候,圖表跟著自動適配。
// 監(jiān)聽瀏覽器縮放,圖表對象調(diào)用縮放resize函數(shù)
window.addEventListener("resize", function() {
? ? myChart.resize();
? });
18-Echarts-社區(qū)介紹
社區(qū)就是一些,活躍的echart使用者,交流和貢獻(xiàn)定制好的圖表的地方。
1576664444951
在這里可以找到一些基于echart的高度定制好的圖表,相當(dāng)于基于jquery開發(fā)的插件,這里是基于echarts開發(fā)的第三方的圖表。
19-Echarts-map使用(擴(kuò)展)
參考社區(qū)的例子:https://gallery.echartsjs.com/editor.html?c=x0-ExSkZDM (模擬飛機(jī)航線)
實(shí)現(xiàn)步驟:
第一需要下載china.js提供中國地圖的js文件
第二個因?yàn)槔锩娲a比較多,我們新建一個新的js文件 myMap.js 引入
使用社區(qū)提供的配置即可。
需要修改:
去掉標(biāo)題組件
去掉背景顏色
修改地圖省份背景 #142957 areaColor 里面做修改
地圖放大通過 zoom 設(shè)置為1.2即可
? ? geo: {
? ? ? map: 'china',
? ? ? zoom: 1.2,
? ? ? label: {
? ? ? ? emphasis: {
? ? ? ? ? show: false
? ? ? ? }
? ? ? },
? ? ? roam: false,
? ? ? itemStyle: {
? ? ? ? normal: {
? ? ? ? ? areaColor: '#142957',
? ? ? ? ? borderColor: '#0692a4'
? ? ? ? },
? ? ? ? emphasis: {
? ? ? ? ? areaColor: '#0b1c2d'
? ? ? ? }
? ? ? }
? ? },
總結(jié):這例子是擴(kuò)展案例,大家以后可以多看看社區(qū)里面的案例。
20- 最后約束縮放
/* 約束屏幕尺寸 */
@media screen and (max-width: 1024px) {
? html {
? ? font-size: 42px !important;
? }
}
@media screen and (min-width: 1920px) {
? html {
? ? font-size: 80px !important;
? }
}
初始化
01-使用技術(shù)
完成該項(xiàng)目需要具備以下知識:
div + css 布局
flex 布局
Less
原生js + jquery 使用
rem適配
echarts基礎(chǔ)
02- 案例適配方案
設(shè)計(jì)稿是1920px
flexible.js 把屏幕分為 24 等份
cssrem 插件的基準(zhǔn)值是 80px
插件-配置按鈕---配置擴(kuò)展設(shè)置--Root Font Size 里面 設(shè)置。
但是別忘記重啟vscode軟件保證生效
03-基礎(chǔ)設(shè)置
body 設(shè)置背景圖 ,縮放為 100% , 行高1.15
css初始化
04-header 布局
高度為100px
背景圖,在容器內(nèi)顯示
縮放比例為 100%
h1 標(biāo)題部分 白色 38像素 居中顯示 行高為 80像素
時間模塊 showTime 定位右側(cè) right 為 30px 行高為 75px 文字顏色為:rgba(255, 255, 255, 0.7) 而文字大小為 20像素
// 格式: 當(dāng)前時間:2020年3月17-0時54分14秒
<script>
? ? ? ? ? ? var t = null;
? ? ? ? ? ? t = setTimeout(time, 1000);//開始運(yùn)行
? ? ? ? ? ? function time() {
? ? ? ? ? ? ? ? clearTimeout(t);//清除定時器
? ? ? ? ? ? ? ? dt = new Date();
? ? ? ? ? ? ? ? var y = dt.getFullYear();
? ? ? ? ? ? ? ? var mt = dt.getMonth() + 1;
? ? ? ? ? ? ? ? var day = dt.getDate();
? ? ? ? ? ? ? ? var h = dt.getHours();//獲取時
? ? ? ? ? ? ? ? var m = dt.getMinutes();//獲取分
? ? ? ? ? ? ? ? var s = dt.getSeconds();//獲取秒
? ? ? ? ? ? ? ? document.querySelector(".showTime").innerHTML = '當(dāng)前時間:' + y + "年" + mt + "月" + day + "-" + h + "時" + m + "分" + s + "秒";
? ? ? ? ? ? ? ? t = setTimeout(time, 1000); //設(shè)定定時器,循環(huán)運(yùn)行 ? ??
? ? ? ? ? ? }
?</script>
header部分css樣式
header {
? position: relative;
? height: 1.25rem;
? background: url(../images/head_bg.png) no-repeat top center;
? background-size: 100% 100%;
? h1 {
? ? font-size: 0.475rem;
? ? color: #fff;
? ? text-align: center;
? ? line-height: 1rem;
? }
? .showTime {
? ? position: absolute;
? ? top: 0;
? ? right: 0.375rem;
? ? line-height: 0.9375rem;
? ? font-size: 0.25rem;
? ? color: rgba(255, 255, 255, 0.7);
? }
}
05-mainbox 主體模塊
需要一個上左右的10px 的內(nèi)邊距
column 列容器,分三列,占比 3:5:3
css樣式:
.mainbox {
? padding: 0.125rem 0.125rem 0;
? display: flex;
? .column {
? ? flex: 3;
? }
? &:nth-child(2) {
? ? flex: 5;
? }
}
06-公共面板模塊 panel
高度為 310px
1像素的 1px solid rgba(25, 186, 139, 0.17) 邊框
有l(wèi)ine.jpg 背景圖片
padding為 上為 0 左右 15px 下為 40px
下外邊距是 15px
利用panel 盒子 before 和after 制作上面兩個角 大小為 10px 線條為 2px solid #02a6b5
新加一個盒子before 和after 制作下側(cè)兩個角 寬度高度為 10px
.panel {
? position: relative;
? height: 3.875rem;
? border: 1px solid rgba(25, 186, 139, 0.17);
? background: url(../images/line\(1\).png);
? padding: 0 0.1875rem 0.5rem;
? margin-bottom: 0.1875rem;
? &::before {
? ? position: absolute;
? ? top: 0;
? ? left: 0;
? ? content: "";
? ? width: 10px;
? ? height: 10px;
? ? border-top: 2px solid #02a6b5;
? ? border-left: 2px solid #02a6b5;
? }
? &::after {
? ? position: absolute;
? ? top: 0;
? ? right: 0;
? ? content: "";
? ? width: 10px;
? ? height: 10px;
? ? border-top: 2px solid #02a6b5;
? ? border-right: 2px solid #02a6b5;
? }
? .panel-footer {
? ? position: absolute;
? ? left: 0;
? ? bottom: 0;
? ? width: 100%;
? ? &::before {
? ? ? position: absolute;
? ? ? bottom: 0;
? ? ? left: 0;
? ? ? content: "";
? ? ? width: 10px;
? ? ? height: 10px;
? ? ? border-bottom: 2px solid #02a6b5;
? ? ? border-left: 2px solid #02a6b5;
? ? }
? ? &::after {
? ? ? position: absolute;
? ? ? bottom: 0;
? ? ? right: 0;
? ? ? content: "";
? ? ? width: 10px;
? ? ? height: 10px;
? ? ? border-bottom: 2px solid #02a6b5;
? ? ? border-right: 2px solid #02a6b5;
? ? }
? }
}
07-柱形圖 bar 模塊(布局)
標(biāo)題模塊 h2 高度為 48px 文字顏色為白色 文字大小為 20px
圖標(biāo)內(nèi)容模塊 chart 高度 240px
以上可以作為panel公共樣式部分
? h2 {
? ? height: 0.6rem;
? ? line-height: 0.6rem;
? ? text-align: center;
? ? color: #fff;
? ? font-size: 20px;
? ? font-weight: 400;
? }
? .chart {
? ? height: 3rem;
? ? background-color: pink;
? }
08-中間布局
上面是no 數(shù)字模塊
下面是map 地圖模塊
數(shù)字模塊 no 有個背景顏色 rgba(101, 132, 226, 0.1); 有個15像素的內(nèi)邊距
注意中間列 column 有個 左右 10px 下 15px 的外邊距
no 模塊里面上下劃分 上面是數(shù)字(no-hd) 下面 是 相關(guān)文字說明(no-bd)
no-hd 數(shù)字模塊 有一個邊框 1px solid rgba(25, 186, 139, 0.17)
no-hd 數(shù)字模塊 里面分為兩個小li 每個小li高度為 80px 文字大小為 70px 顏色為 #ffeb7b 字體是圖標(biāo)字體 electronicFont
no-hd 利用 after 和 before制作2個小角, 邊框 2px solid #02a6b5 寬度為 30px 高度為 10px
小豎線 給 第一個小li after 就可以 1px寬 背景顏色為 rgba(255, 255, 255, 0.2); 高度 50% top 25% 即可
no-bd 里面也有兩個小li 高度為 40px 文字顏色為 rgba(255, 255, 255, 0.7) 文字大小為 18px 上內(nèi)邊距為 10px
/* 聲明字體*/
@font-face {
? font-family: electronicFont;
? src: url(../font/DS-DIGIT.TTF);
}
地圖模塊制作:
地圖模塊高度為 810px 里面包含4個盒子 chart 放圖表模塊 球體盒子 旋轉(zhuǎn)1 旋轉(zhuǎn)2
球體圖片模塊 map1 大小為 518px 要加背景圖片 因?yàn)橐s放100% 定位到最中央 透明度 .3
旋轉(zhuǎn)1 map 2 大小為 643px 要加背景圖片 因?yàn)橐s放100% 定位到中央 透明度 .6 做旋轉(zhuǎn)動畫 利用z-index壓住球體
旋轉(zhuǎn)2 map3 大小為 566px 要加背景圖片 因?yàn)橐s放100% 定位到中央 旋轉(zhuǎn)動畫 注意是逆時針
?<div class="no">
? ? ? ? ? ? ? ? <div class="no-hd">
? ? ? ? ? ? ? ? ? ? <ul>
? ? ? ? ? ? ? ? ? ? ? ? <li>125811</li>
? ? ? ? ? ? ? ? ? ? ? ? <li>104563</li>
? ? ? ? ? ? ? ? ? ? </ul>
? ? ? ? ? ? ? ? </div>
? ? ? ? ? ? ? ? <div class="no-bd">
? ? ? ? ? ? ? ? ? ? <ul>
? ? ? ? ? ? ? ? ? ? ? ? <li>前端需求人數(shù)</li>
? ? ? ? ? ? ? ? ? ? ? ? <li>市場供應(yīng)人數(shù)</li>
? ? ? ? ? ? ? ? ? ? </ul>
? ? ? ? ? ? ? ? </div>
? ? ? ? ? ? </div>
? ? ? ? ? ? <div class="map">
? ? ? ? ? ? ? ? <div class="chart"></div>
? ? ? ? ? ? ? ? <div class="map1"></div>
? ? ? ? ? ? ? ? <div class="map2"></div>
? ? ? ? ? ? ? ? <div class="map3"></div>
? ? ? ? ? ? </div>
中間樣式
/* 聲明字體*/
@font-face {
? font-family: electronicFont;
? src: url(../font/DS-DIGIT.TTF);
}
.no {
? background: rgba(101, 132, 226, 0.1);
? padding: 0.1875rem;
? .no-hd {
? ? position: relative;
? ? border: 1px solid rgba(25, 186, 139, 0.17);
? ? &::before {
? ? ? content: "";
? ? ? position: absolute;
? ? ? width: 30px;
? ? ? height: 10px;
? ? ? border-top: 2px solid #02a6b5;
? ? ? border-left: 2px solid #02a6b5;
? ? ? top: 0;
? ? ? left: 0;
? ? }
? ? &::after {
? ? ? content: "";
? ? ? position: absolute;
? ? ? width: 30px;
? ? ? height: 10px;
? ? ? border-bottom: 2px solid #02a6b5;
? ? ? border-right: 2px solid #02a6b5;
? ? ? right: 0;
? ? ? bottom: 0;
? ? }
? ? ul {
? ? ? display: flex;
? ? ? li {
? ? ? ? position: relative;
? ? ? ? flex: 1;
? ? ? ? text-align: center;
? ? ? ? height: 1rem;
? ? ? ? line-height: 1rem;
? ? ? ? font-size: 0.875rem;
? ? ? ? color: #ffeb7b;
? ? ? ? padding: 0.05rem 0;
? ? ? ? font-family: electronicFont;
? ? ? ? font-weight: bold;
? ? ? ? &:first-child::after {
? ? ? ? ? content: "";
? ? ? ? ? position: absolute;
? ? ? ? ? height: 50%;
? ? ? ? ? width: 1px;
? ? ? ? ? background: rgba(255, 255, 255, 0.2);
? ? ? ? ? right: 0;
? ? ? ? ? top: 25%;
? ? ? ? }
? ? ? }
? ? }
? }
? .no-bd ul {
? ? display: flex;
? ? li {
? ? ? flex: 1;
? ? ? height: 0.5rem;
? ? ? line-height: 0.5rem;
? ? ? text-align: center;
? ? ? font-size: 0.225rem;
? ? ? color: rgba(255, 255, 255, 0.7);
? ? ? padding-top: 0.125rem;
? ? }
? }
}
.map {
? position: relative;
? height: 10.125rem;
? .chart {
? ? position: absolute;
? ? top: 0;
? ? left: 0;
? ? z-index: 5;
? ? height: 10.125rem;
? ? width: 100%;
? }
? .map1,
? .map2,
? .map3 {
? ? position: absolute;
? ? top: 50%;
? ? left: 50%;
? ? transform: translate(-50%, -50%);
? ? width: 6.475rem;
? ? height: 6.475rem;
? ? background: url(../images/map.png) no-repeat;
? ? background-size: 100% 100%;
? ? opacity: 0.3;
? }
? .map2 {
? ? width: 8.0375rem;
? ? height: 8.0375rem;
? ? background-image: url(../images/lbx.png);
? ? opacity: 0.6;
? ? animation: rotate 15s linear infinite;
? ? z-index: 2;
? }
? .map3 {
? ? width: 7.075rem;
? ? height: 7.075rem;
? ? background-image: url(../images/jt.png);
? ? animation: rotate1 10s linear infinite;
? }
? @keyframes rotate {
? ? from {
? ? ? transform: translate(-50%, -50%) rotate(0deg);
? ? }
? ? to {
? ? ? transform: translate(-50%, -50%) rotate(360deg);
? ? }
? }
? @keyframes rotate1 {
? ? from {
? ? ? transform: translate(-50%, -50%) rotate(0deg);
? ? }
? ? to {
? ? ? transform: translate(-50%, -50%) rotate(-360deg);
? ? }
? }
}
09-Echarts-介紹
常見的數(shù)據(jù)可視化庫:
D3.js 目前 Web 端評價最高的 Javascript 可視化工具庫(入手難)
ECharts.js 百度出品的一個開源 Javascript 數(shù)據(jù)可視化庫
Highcharts.js 國外的前端數(shù)據(jù)可視化庫,非商用免費(fèi),被許多國外大公司所使用
AntV 螞蟻金服全新一代數(shù)據(jù)可視化解決方案 等等
Highcharts 和 Echarts 就像是 Office 和 WPS 的關(guān)系
ECharts,一個使用 JavaScript 實(shí)現(xiàn)的開源可視化庫,可以流暢的運(yùn)行在 PC 和移動設(shè)備上,兼容當(dāng)前絕大部分瀏覽器(IE8/9/10/11,Chrome,Firefox,Safari等),底層依賴矢量圖形庫 ZRender,提供直觀,交互豐富,可高度個性化定制的數(shù)據(jù)可視化圖表。
大白話:
是一個JS插件
性能好可流暢運(yùn)行PC與移動設(shè)備
兼容主流瀏覽器
提供很多常用圖表,且可定制。
折線圖、柱狀圖、散點(diǎn)圖、餅圖、K線圖
官網(wǎng)地址:https://www.echartsjs.com/zh/index.html
10-Echarts-體驗(yàn)
官方教程:[五分鐘上手ECharts](https://www.echartsjs.com/zh/tutorial.html#5 分鐘上手 ECharts)
更多示例#點(diǎn)我
更多?
總結(jié)
以上是生活随笔為你收集整理的【基于ECharts 数据可视化展示相关配置表全】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于监控服务器指标、CPU、内存、警报的
- 下一篇: IOS工具方法小节