數據可視化(BI報表的開發)第一天

課程回顧:

? jQuery事件注冊:

? $(元素).click(function () {});

? $(元素).on(‘click’, [后代元素], function () {});

? $(元素).one(‘click’, function () {});

? 解綁事件:off

? 自動觸發:

? $(元素).click();

? $(元素).trigger(‘click’);

? $(元素).triggerHandler(‘click’);

? 事件對象:$(元素).click(function (e) {e});

? 本地存儲:

? localStorage.setItem(‘鍵’,‘值’);

? localStorage.getItem(‘鍵’);

? JSON數據:

? JSON.parse(字符串);

? JSON.stringifyh(數組);

可視化項目:

1、課程目標:

鏈接:添加鏈接描述
提取碼:5kyp

碼云地址:碼云地址

  • 實踐css布局相關技術
  • 實踐jquery相關技術
  • 掌握echarts的基本使用

2、項目介紹

在這里插入圖片描述

? 應對現在數據可視化的趨勢,越來越多企業需要在很多場景(營銷數據,生產數據,用戶數據)下使用,可視化圖表來展示體現數據,讓數據更加直觀,數據特點更加突出。我們引入 ‘立可得’ 數據可視化項目。

我們要完成這個項目:需要使用一些基礎的DIV+CSS布局,還引入了一些C3技術,還引入了各類圖表的繪制,以及高級的地圖數據可視化案例。主要功能有:餅狀圖、柱狀圖、線形圖、地圖 …

? 設計稿是1920的,所以會做一些適配,但不會都去適配

需要具備知識:

完成該項目需要具備以下知識:

  • div + css 布局
  • flex 布局
  • css3動畫
  • css3漸變
  • css3邊框圖片
  • 原生js + jquery 使用
  • rem適配
  • echarts基礎(重點)

3、Echarts-介紹

地址:https://www.echartsjs.com/zh/index.html

ECharts,一個使用 JavaScript 實現的開源可視化庫,可以流暢的運行在 PC 和移動設備上,兼容當前絕大部分瀏覽器(IE8/9/10/11XQ,Chrome,Firefox,Safari等),底層依賴矢量圖形庫 ZRender,提供直觀,交互豐富,可高度個性化定制的數據可視化圖表。

理解:實際上就是一個JS插件,可以運行在PC和移動設備,兼容主流瀏覽器,提供非常多的圖表(折線圖,柱狀圖,散點圖,餅圖,K線圖)

4、Echarts-體驗

1、下載:下載echarts https://github.com/apache/incubator-echarts/tree/4.5.0

2、進入echarts dist/echarts.min.js【引入】

3、準備一個具備大小(寬高)的 DOM

<div id="main" style="width: 600px;height:400px;"></div>

4、初始化echart實例

通過:echarts.init實例化一個容器(內部返回實例對象)
var myChart = echarts.init(document.getElementById('main'));

5、指定圖表的配置項和數據 (根據文檔提供示例找到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'}]
};

6、使用剛指定的配置項和數據顯示圖表【配置不同圖表不同】

myChart.setOption(option);

5、Echarts-基礎配置

需要了解的主要配置:series xAxis yAxis grid tooltip title legend color

大致劃分兩大類,有軸的和無軸的

  • series
    • 系列列表。每個系列通過 type 【line(線性),bar(柱狀)】決定自己的圖表類型
    • 大白話:圖表數據,指定什么類型的圖標(折現,柱狀等),可以多個圖表重疊。
  • xAxis:直角坐標系 grid 中的 x 軸
  • yAxis:直角坐標系 grid 中的 y 軸【Y依賴數據顯示】
  • grid:直角坐標系內繪圖網格
  • title:標題組件
  • tooltip:提示框組件【鼠標放上顯示】(軸上提示:trigger : ‘axis’,)
  • legend:圖例組件,每個線圖表作用,【需要數據series有name屬性】
  • color:調色盤顏色列表【數組傳遞】

演示代碼:

var option = {xAxis: {type: 'category',data: ['星期一', '星期二', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']},yAxis: {type: 'value'},series: [{name: '用戶注冊',data: [820, 932, 901, 934, 9222, 1330, 1320],type: 'line'},{name: '用戶數據',data : [820, 932, 600, 934, 1290, 1330, 1320],type : "bar",}],grid : {show : true,// top : 100},tooltip : {trigger : "axis"},title : {text : '年度統計'},color : ['red','yellow'],legend : {data:['用戶注冊','用戶數據']}};

6、REM適配

適配方案:

  • 設計稿是1920px ,約定rem基準值為 24px (基準值html的font-size)。【不同設配等比顯示,例如320和375等設備】
  • 適配范圍:[1024-1920],和移動適配不同移動適配固定設備之前媒體查詢,類似手淘的flexible,JS設置,實時配置,根據等比例配置;基準值動態設置
  • 那么:設備寬度與rem基準值比例為 80 。
  • 結論:適配設備的時候保持80的比例即可。
  • 將來:換算rem單位的時候,使用24px基準值即可。

實現代碼,在頁面底部加載index.js文件實現動態設置基準值邏輯:

頁面初始化,就需要一個基準值,

<script src="js/index.js"></script>
(function () {// 1、頁面一加載就要知道頁面寬度計算var setFont = function () {// 因為要定義變量可能和別的變量相互沖突,污染,所有用自調用函數var html = document.documentElement;// 獲取html// 獲取寬度var width = html.clientWidth;// 判斷if (width < 1024) width = 1024;if (width > 1920) width = 1920;// 設置html的基準值var fontSize = width / 80 + 'px';// 設置給htmlhtml.style.fontSize = fontSize;}setFont();// 2、頁面改變的時候也需要設置// 尺寸改變事件window.onresize = function () {setFont();}
})();

注意:書寫CSS代碼,讓px轉換rem單位,使用一個cscode插件 cssrem

  • vscode插件搜索cssrem,進行安裝既可
  • 需要在設置中cssrem換算的時候使用80的比例
    // rem換算"cssrem.rootFontSize": 24,//【計算時的基準值】"cssrem.fixedDigits":// 3,【取三位小數】"cssrem.autoRemovePrefixZero": false,//【是否去除0】1920設計稿,比例80,基準值24,計算式可能有小數,很多位,保留3為有效小數,不去除0,例如(0.333);

7、基礎布局

html結構

 <div class="viewport"><div class="column"><!--概覽-->                                    <div></div><!--監控-->                                    <div></div> <!--點位-->                                    <div></div>                                           </div><div class="column"><!--地圖-->                                    <div></div><!--用戶-->                                    <div></div>                                          </div><div class="column"><!--訂單-->                                    <div></div><!--銷售-->                                    <div></div>                                  <div><!--渠道-->                                    <div></div><!--季度-->                                    <div></div></div><!--排行-->                                    <div></div>                                     </div>                        </div>
  • body 設置背景圖 ,行高1.15,字體12px,內外邊距清除
  • viewport 主體容器,限制最小寬度1024px,與最大寬度1920px,最小高度780px。
    • 需要居中顯示
    • 使用logo.png做為背景圖,在容器內顯示
    • 內間距 88px 20px 0
  • column 列容器,分三列,占比 3:4:3
    • 中間容器外間距 32px 20px a

css樣式:

/* 基礎布局 */
body{font-family: Arial, Helvetica, sans-serif;margin: 0;padding: 0;font-size: 0.5rem;line-height: 1.15;background: url(../images/bg.jpg) no-repeat 0 0 / cover;
}
h4,h3,ul{margin: 0;padding: 0;font-weight: normal;
}
ul{list-style: none;
}
a{text-decoration: none;
}
.viewport{max-width: 1920px;min-width: 1024px;margin: 0 auto;min-height: 780px;padding: 3.667rem 0.833rem 0;background: url(../images/logo.png) no-repeat 0 0 / contain;display: flex;
}
.column{flex: 3;position: relative;
}
.column:nth-child(2){flex: 4;margin: 1.333rem 0.833rem 0;
}

8、邊框圖片

css3中自適應邊框圖片運用:

在這里插入圖片描述

組合寫法:

border-image: url("images/border.jpg") 167/20px round;

拆分寫法:

border-image-source: url("images/border.jpg");
border-image-slice: 167 167 167 167;
border-image-width: 20px;
border-image-repeat: round;

解釋:

  • 邊框圖片資源地址
  • 裁剪尺寸(上 右 下 左)單位默認px,可使用百分百。
  • 邊框圖片的寬度,默認邊框的寬度。
  • 平鋪方式:
    • stretch 拉伸(默認)
    • repeat 平鋪,從邊框的中心向兩側開始平鋪,會出現不完整的圖片。
    • round 環繞,是完整的使用切割后的圖片進行平鋪。

DEMO代碼:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>邊框圖片</title><style>ul{margin: 0;padding: 0;list-style: none;}li{width: 350px;height: 160px;border: 20px solid #ccc;margin-top: 20px;}li:nth-child(1){/*border-image: url("images/border.jpg") 167/20px round;*/border-image-source: url("images/border.jpg");border-image-slice: 167 167 167 167;border-image-width: 20px;/*環繞  是完整的使用切割后的圖片進行平鋪*/                    border-image-repeat: round; }li:nth-child(2){/*平鋪 從邊框的中心向兩側開始平鋪 會出現不完整的圖片*/                                         border-image: url("images/border.jpg") 167/20px repeat;}li:nth-child(3){/*默認的平鋪方式*/border-image: url("images/border.jpg") 167/20px stretch;}</style>
</head>
<body>
<ul><li></li><li></li><li></li>
</ul>
</body>
</html>

課程回顧:

? 可視化:介紹

? Echarts:JavaScropt庫,圖表

? 下載,引入,【寫一個盒子,實例化對象,配置項,對象.setOption(配置項)】

? REM:1024-1920,80

? 局部:flex

? 邊框圖片:畫4到,吧四個角切割出來,四個角依次放到盒子的四個角

? background-image:url(地址) 切割/邊框px 拉伸;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/248108.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248108.shtml
英文地址,請注明出處:http://en.pswp.cn/news/248108.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在Block中使用weakSelf與strongSelf的意義

在Block中使用weakSelf與strongSelf的意義 我們都會聲明一個弱引用在block中使用, 目的就是防止循環引用, 那么weakSelf與strongSelf一起使用目的是什么呢? 首先先定義2個宏: #define YXWeakSelf(type) __weak typeof(type) weak##type type; #define StrongSelf(type) __…

操作系統原理之操作系統簡介(第一章)

一、 什么是操作系統 操作系統&#xff1a;是一種復雜的系統軟件&#xff0c;是不同程序代碼、數據結構、數據初始化文件的集合&#xff0c;可執行。 操作系統是用戶與硬件之間的接口&#xff1a;操作系統與硬件部分相互作用&#xff0c;并且為運行在計算機上的應用程序提供執行…

數據可視化(BI報表的開發)第二天

9、公用面板樣式 所有的面板的基礎樣式是一致的&#xff0c;提前布局好。 面板 .panel &#xff1a;box-sizing&#xff0c;邊框圖&#xff0c;大小&#xff0c;定位【51 38 20 132】容器 .inner&#xff1a;padding&#xff1a;24&#xff0c;36&#xff0c;定位外部拉寬標…

關于Xcode 7.3 7.3.1 斷點 卡死 無限菊花

關于Xcode 7.3 7.3.1 斷點 卡死 無限菊花 只要一打斷點,就無限卡死,變量區一直菊花在轉,只有強制退出Xcode才能重新編譯,找了Google和Stack OvewFlowe依然沒有解決辦法. 刪除項目,重新安裝Xcode,重新運行程序一切辦法都解決不到,百度上說的"build setting中將Enable Clang…

html5+hbuilder+夜神模擬器+webview

HTML5 Plus應用概述 首先新建一個移動App項目&#xff0c;文件-->新建-->移動APP HTML5 Plus移動App&#xff0c;簡稱5App&#xff0c;是一種基于HTML、JS、CSS編寫的運行于手機端的App&#xff0c;這種App可以通過擴展的JS API任意調用手機的原生能力&#xff0c;實現與…

第十九節:Asp.Net Core WebApi知識總結(一)

111 轉載于:https://www.cnblogs.com/yaopengfei/p/11558525.html

iOS設計模式 ——單例模式詳解以及嚴格單例模式注意點

一、我們常用的單例有哪些&#xff1f; [[UIApplication sharedApplication] statusBarStyle];//系統中的單例模式&#xff0c;通過它獲取到狀態欄的style [NSNotificationCenter defaultCenter] addObserver:<#(nonnull id)#> selector:<#(nonnull SEL)#> name:&…

科學計算庫學習報告

numpy與matplotlib的學習隨筆 我愛代碼 import numpy as npimport matplotlib.pyplot as pltimport matplotlibmatplotlib.rcParams[font.family]SimHeimatplotlib.rcParams[font.sans-serif][SimHei]labelsnp.array([第一次,第二次,第三次,第四次,第五次,第六次])nAttr6datanp…

前端網頁 — 初始化文件

/*--------------------------初始化代碼*/ /*清除默認的margin和padding*/ * {margin: 0;padding: 0; }/*清除小圓點*/ ul {list-style: none; }/*清除a標簽默認的下劃線*/ a {text-decoration: none; }/*表格邊框合并*/ table {border-collapse: collapse; }/*去除input標簽點…

數據庫系統原理(第二章關系數據庫 )

一、關系數據庫概述 20世紀80年代后&#xff0c;在商用數據庫管理系統中&#xff0c;&#xff08; 關系模型 &#xff09;逐漸取代早 期的網狀模型和層次模型&#xff0c;成為主流數據模型 SQL3&#xff08;SQL-99&#xff09;:1999年 SQL2&#xff08;SQL-92&#xff09;&…

iOS NSMutableAttributedString常用方法總結

NSAttributedString 叫做富文本&#xff0c;是一種帶有屬性的字符串&#xff0c;通過它可以輕松的在一個字符串中表現出多種字體、字號、字體大小等各不相同的風格&#xff0c;還可以對段落進行格式化&#xff0c;一般都是對可變富文本&#xff08;NSMutableAttributedString&a…

微信小程序image bindload事件失效不觸發

1.先上代碼 <template><div :class"[img-wrapper, className]"><img :src"defaultSrc" :mode"mode" class"default-img" :hidden"loaded"><img :src"src" :mode"mode" load"…

數據可視化(BI報表的開發)第三天

20、銷售統計-布局 html結構&#xff1a; <!-- 銷售額 --><div class"sales panel"><div class"inner"><div class"caption"><h3>銷售額統計</h3><a href"javascript:;" class"active&q…

軟件開發工具(第1章:緒論)

一、 軟件開發工具的由來 計算機語言和軟件開發工具的發展和歷史 機器語言&#xff08;第一代語言&#xff09;&#xff1a;難以記憶的、無意義的、二進 制的字符串 匯編語言&#xff08;第二代語言&#xff09;針對難以記憶的、無意義的、二進 制的字符串、人們試圖用英語中具…

Swift傻傻分不清楚系列(一)常量與變量

菜鳥從零開始認識學習Swift。感謝大神們翻譯的文檔。搬到自己小黑屋里慢慢看~~~ 本頁包含內容&#xff1a; 常量和變量聲明常量和變量類型標注常量和變量的命名輸出常量和變量注釋分號 Swift 是一門開發 iOS, OS X 和 watchOS 應用的新語言。然而&#xff0c;如果你有 C 或者 …

Saiku Table展示數據合并bug修復(二十五)

Saiku Table展示數據合并bug修復 Saiku以table的形式展示數據&#xff0c;如果點擊了 非空的字段 按鈕&#xff0c;則會自動進行數據合并&#xff0c;為空的數據行以及數據列都會自動隱藏掉。 首先我們應該定位問題&#xff1a; 1.查看接口返回值&#xff0c;會發現接口返回都正…

軟件開發工具(第2章:軟件開發過程及其組織)

一、軟件開發的困難 程序員做好軟件工作的關鍵是什么&#xff1f; 關鍵是兩個轉換&#xff1a; 第一個轉換是用戶對軟件功能的理解與程序員對軟件功能的理解之間的轉換。 &#xff08;不同?業的?員對于事物的認識?法與描述?法是不同的。&#xff09; 第二個轉換要解決的是人…

數據可視化(BI報表的開發)第四天

練習題&#xff1a; 先找出字符串 ‘8587263747153203552943982’ 中出現次數最多的數字及次數&#xff0c;然后去重后并排序&#xff08;不準使用sort&#xff09;&#xff0c;使得到結果為 ‘0123456789’。 要求1&#xff1a;找到出現最多的數字和出現的次數 // 1、找出出…

Swift傻傻分不清楚系列(二)數據類型

本頁包含內容&#xff1a; 整數整數范圍IntUInt浮點數類型安全和類型推斷數值型字面量數值型類型轉換整數轉換數整數和浮點數轉換類型別名布爾值 整數 整數就是沒有小數部分的數字&#xff0c;比如42和-23。整數可以是有符號&#xff08;正、負、零&#xff09;或者無符號&…

Python打卡第四周

這一周鴿了好久&#xff0c; 因為最近在準備比賽。課程一直沒跟上。。。 今天整理完本周的知識之后休息一周復習之前的 好了。 上總結 第一天 裝飾器定義函數bar&#xff0c;在foo中調用 # def foo(): # # print(in the foo) # # bar() # # foo()def bar():print(in th…