EChart繪製風速風向曲線分析圖

来源:https://www.cnblogs.com/w2011/archive/2019/07/31/11277147.html
-Advertisement-
Play Games

1、獲取ECharts 在 ECharts 的 GitHub 上下載最新的 release 版本,解壓出來的文件夾里的 dist 目錄里可以找到最新版本的 echarts 庫。 2、引入ECharts 像普通的 JavaScript 庫一樣用 script 標簽引入。 3、繪製圖表 然後就可以通過  ...


1、獲取ECharts

      在 ECharts 的 GitHub 上下載最新的 release 版本,解壓出來的文件夾里的 dist 目錄里可以找到最新版本的 echarts 庫。

2、引入ECharts

像普通的 JavaScript 庫一樣用 script 標簽引入。

1 <!DOCTYPE html>
2 <html>
3 <head>
4     <meta charset="utf-8">
5     <!-- 引入 ECharts 文件 -->
6     <script src="echarts.min.js"></script>
7 </head>
8 </html>

3、繪製圖表

1 <body>
2     <!-- 為 ECharts 準備一個具備大小(寬高)的 DOM -->
3     <div id="main" style="width: 600px;height:400px;"></div>
4 </body>

然後就可以通過 echarts.init 方法初始化一個 echarts 實例並通過 setOption 方法生成一個簡單的柱狀圖,下麵是完整代碼。

  1 <!DOCTYPE html>
  2 <html>
  3 <head>
  4     <meta charset="utf-8">
  5     <title>ECharts</title>
  6     <!-- 引入 echarts.js -->
  7     <script src="echarts.min.js"></script>
  8 </head>
  9 <body>
 10     <!-- 為ECharts準備一個具備大小(寬高)的Dom -->
 11     <div id="main" style="width: 600px;height:400px;"></div>
 12     <script type="text/javascript">
 13         // 基於準備好的dom,初始化echarts實例
 14             var data = [
 15             [
 16                 1483488000000,
 17                 6.19,
 18                 0.9545
 19             ],
 20             [
 21                 1483574400000,
 22                 6.19,
 23                 0.2303
 24             ],
 25             [
 26                 1483660800000,
 27                 3.19,
 28                 0
 29             ],
 30             [
 31                 1483747200000,
 32                 6.19,
 33                 0
 34             ],
 35             [
 36                 1483833600000,
 37                 6.19,
 38                 4
 39             ],
 40             [
 41                 1483920000000,
 42                 11.19,
 43                 2
 44             ],
 45             [
 46                 1484006400000,
 47                 17.19,
 48                 4.7124
 49             ]
 50         ];
 51         //數據參數順序
 52         var dims = {
 53             time: 0,
 54             windSpeed: 1,
 55             R: 2
 56         };
 57         //箭頭大小
 58         var arrowSize = 12;
 59         //方向繪製
 60         function renderArrow(param, api) {
 61             var point = api.coord([
 62                 api.value(dims.time),
 63                 api.value(dims.windSpeed)
 64             ]);
 65 
 66             return {
 67                 type: 'path',
 68                 shape: {
 69                     pathData: 'M31 16l-15-15v9h-26v12h26v9z',
 70                     x: -arrowSize / 2,
 71                     y: -arrowSize / 2,
 72                     width: arrowSize,
 73                     height: arrowSize
 74                 },
 75                 rotation: api.value(dims.R),
 76                 position: point,
 77                 style: api.style({
 78                     stroke: '#555',
 79                     lineWidth: 1
 80                 })
 81             };
 82         }
 83 
 84         var option = {
 85             title: {
 86                 text: '風速風向數據分析圖',
 87                 left: 'center'
 88             },
 89             tooltip: {
 90                 trigger: 'axis',
 91                 formatter: function (params) {
 92                     return [
 93                         echarts.format.formatTime('yyyy-MM-dd', params[0].value[dims.time])
 94                         + ' ' + echarts.format.formatTime('hh:mm', params[0].value[dims.time]),
 95                         '風速:' + params[0].value[dims.windSpeed],
 96                         '風向:' + params[0].value[dims.R]
 97                     ].join('<br>');
 98                 }
 99             },
100             grid: {
101                 top: 40,
102                 bottom: 60
103             },
104             xAxis: {
105                 type: 'time'
106             },
107             yAxis: [{
108                 name: '風速(節)',
109                 nameLocation: 'middle',
110                 nameGap: 35,
111                 axisLine: {
112                     lineStyle: {
113                         color: '#666'
114                     }
115                 },
116                 splitLine: {
117                     lineStyle: {
118                         color: '#ddd'
119                     }
120                 }
121             }, {
122                 axisLine: { show: false },
123                 axisTick: { show: false },
124                 axisLabel: { show: false },
125                 splitLine: { show: false }
126             }],
127             visualMap: {
128                 type: 'piecewise',
129                 orient: 'horizontal',
130                 left: 'center',
131                 bottom: 10,
132                 pieces: [{
133                     gte: 17,
134                     color: '#D33C3E',
135                     label: '大風(>=17節)'
136                 }, {
137                     gte: 11,
138                     lt: 17,
139                     color: '#f4e9a3',
140                     label: '中風(11  ~ 17 節)'
141                 }, {
142                     lt: 11,
143                     color: '#18BF12',
144                     label: '微風(小於 11 節)'
145                 }],
146                 seriesIndex: 0,
147                 dimension: 1
148             },
149             dataZoom: [{
150                 type: 'inside',
151                 xAxisIndex: 0,
152                 minSpan: 5
153             }],
154             series: [{
155                 type: 'custom',
156                 renderItem: renderArrow,
157                 encode: {
158                     x: dims.time,
159                     y: dims.windSpeed
160                 },
161                 data: data,
162                 z: 10
163             }, {
164                 type: 'line',
165                 symbol: 'none',
166                 encode: {
167                     x: dims.time,
168                     y: dims.windSpeed
169                 },
170                 lineStyle: {
171                     normal: {
172                         color: '#aaa',
173                         type: 'dotted'
174                     }
175                 },
176                 data: data,
177                 z: 1
178             }]
179         };
180 
181         myChart.setOption(option);
182 
183         //視窗變化更改Chart大小
184         window.onresize(function () {
185             myChart.resize();
186         });
187     </script>
188 </body>
189 </html>

運行測試圖表如下:


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 封裝一個函數用來克隆對象: ...
  • 組件生命周期函數 React 主動調用的方法,也可重寫這些方法 "生命周期圖譜" 當組件實例被創建並插入 中時,其生命周期調用順序如下: constructor(props) 如果不需要初始化 state 或 不進行方法綁定,則不需要使用該方法 在組件掛載之前會先調用該方法,在實現構造函數時必須先調 ...
  • fn2是fn實例化出來的一個對象,要瞭解new做了那些事情,先看一下一個普通對象有哪些東西。 普通對象: 實例化對象fn2: 1:普通對象的__proto__指向了Function.prototype而fn2的__proto__指向了fn.prototype,所以new的過程中改變了fn2的__pr ...
  • JSX基本語法中關於react如何寫css樣式主要有三種方法 1、基於class --(className) 基於className ,通過className在style中給該class名的DOM元素添加樣式 2、基於inner css (facebook 主張的方式) 行間樣式(json) Fac ...
  • 07.31自我總結 一.文本屬性 大小:font size. 顏色:color 字重:font weight 可選屬性 | | |`bolder 細`| |`粗 更粗` 100 900之間整百的數字 字族:font family ​ 可以選擇多個用 隔開,匹配原則從左往右哪個能用就用哪個 字體樣式: ...
  • 07.31自我總結 一.a標簽的四大偽類 a:link{樣式} 未訪問時的狀態(滑鼠點擊前顯示的狀態) a:hover{樣式} 滑鼠懸停時的狀態 a:visited{樣式} 已訪問過的狀態(滑鼠點擊後的狀態) a:active{樣式} 滑鼠點擊時的狀態 補充 input:focus{樣式} 點擊後鼠 ...
  • 詳情請點擊 ...
  • 本例使用node.js自帶的http模塊和superagent、cheerio模塊,本著學習的精神爬取了博客園共200頁博客鏈接、摘要、時間、作者等等內容。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...