ECharts中Map(地圖)樣式配置、漸變色生成

前言

在日常開發中,ECharts 幾乎成了我們繪制數據圖表的標配工具,功能強大到幾乎無所不能。不過每次用的時候都要翻官方文檔查配置項,確實有點小繁瑣 😅

為了提升效率,也方便以后快速復用,這里就整理記錄下我們在實際項目中高頻使用的那些配置項和技巧。

又是我,小二,帶著滿滿的干貨來了!

📌 官網地址(常備不嫌多):快速上手 - 使用手冊 - Apache ECharts

📌 配置項詳解(ECharts 的“字典”):Documentation - Apache ECharts

📌 實例演示平臺(靈感源泉):makeapie echarts社區圖表可視化案例

📌 主題定制器(美化利器):主題編輯器 - Apache ECharts

一起把 ECharts 用得更順手,讓數據“說話”更有說服力!

樣式

示例

let option = {tooltip: {show: true,formatter: function (params) {if (params.value.length > 1) {return "  " + params.name + ":" + params.value[2];} else {return "  " + params.name + ":" + (params.value || 0);}},},geo: {map: "china",zoom: 1.2,show: true,roam: false,emphasis: {label: {show: false,},},layoutSize: "100%",itemStyle: {borderColor: "rgba(147, 235, 248, 1)",borderWidth: 2,shadowColor: "rgb(90,160,234)",shadowOffsetX: 0,shadowOffsetY: 10,shadowBlur: 10,},},visualMap: {show: false,seriesIndex: [0],inRange: {color: ["#8db1f1", "#026aa9"],},},series: [{type: "map",map: "china",aspectScale: 0.75,zoom: 1.2,label: {show: true,color: "#ffffff",},itemStyle: {borderColor: "rgba(147, 235, 248, 1)",areaColor: {type: "radial",x: 0.5,y: 0.5,r: 0.9,colorStops: [{offset: 0,color: "rgba(17,217,245,0.5)", // 0% 處的顏色},{offset: 1,color: "rgba(10,209,231,0.2)", // 100% 處的顏色},],globalCoord: false, // 缺省為 false},borderWidth: 1,},emphasis: {label: {show: false,color: "#ffffff",},itemStyle: {areaColor: "#026aa9",borderColor: "#fff",borderWidth: 2,},},data: allData,},],
};

層級

地圖的配置是一層蓋一層,從底層頂層的配置依次為:

geo => series => visualMap

geoseries 中都有兩個配置項

  • itemStyle 未選中的樣式
  • emphasis 選中的樣式

geo隱藏掉只有series也是能正常顯示整個地圖的。

geoseries 的搭配可以實現一些陰影,偏移從而實現類似立體的效果。

visualMap

其中visualMap設置的背景顏色是動態的,會根據數值的大小在兩個顏色之間變化。

visualMap: {show: false,seriesIndex: [0],inRange: {color: ["#cdcaf8", "#026aa9"],},
},

需要注意的是:

當區域有數據的時候會使用visualMap的顏色覆蓋,如果沒有數據則會使用seriesitemStyle的樣式。

默認最小值和最大值會根據數據自動計算,當然我們也可以指定具體的值。

visualMap: {min: 0,max: 100,inRange: {color: ['#e0ffff', '#0066ff'] // 設置顏色范圍,淺色到深色},calculable: true,show: true
},

漸變色

線性漸變

沿著一條直線從一種顏色過渡到另一種顏色。

{type: "linear",x: 0,y: 0,x2: 1,y2: 0,colorStops: [{offset: 0,color: "#8db1f1", // 起始顏色},{offset: 1,color: "#026aa9", // 終止顏色},],
}

徑向漸變

從一個中心點向四周輻射的漸變色。

{type: 'radial',x: 0.5, y: 0.5,r: 0.5,colorStops: [{offset: 0, color: 'rgba(255, 0, 0, 1)' // 起始顏色}, {offset: 1, color: 'rgba(0, 0, 255, 1)' // 終止顏色}]
}

你可以設置以下屬性:

  1. type:設置漸變的類型,固定值為 ‘radial’。
  2. x、y:設置漸變的中心點坐標,取值范圍為 0~1,其中 (0, 0) 表示左上角,(1, 1) 表示右下角。
  3. r:設置漸變的半徑,也是相對于整個繪圖區域的半徑,取值范圍為 0~1,1 表示半徑等于繪圖區域的最短邊的一半。
  4. colorStops:設置漸變的起始顏色、終止顏色以及它們的位置。 它是一個數組,每個元素包含兩個屬性,分別是 offset 和 color。 其中 offset 表示該位置距離漸變位置的百分比,取值范圍為 0~1,color 則是該位置所對應的顏色值。

覆蓋散點

漣漪散點

series: [{type: "map",map: "china",aspectScale: 0.75,zoom: 1.2,label: {show: true,color: "#11688a",},itemStyle: {areaColor: "rgba(10,76,139,1)",borderColor: "#215495",borderWidth: 1,},emphasis: {label: {show: false,},itemStyle: { areaColor: "#061E3D" },},data: allData,},{type: "effectScatter",coordinateSystem: "geo",rippleEffect: {brushType: "stroke",},showEffectOn: "render",itemStyle: {color: {type: "radial",x: 0.5,y: 0.5,r: 0.5,colorStops: [{offset: 0,color: "rgba(5,80,151,0.2)",},{offset: 0.8,color: "rgba(5,80,151,0.8)",},{offset: 1,color: "rgba(0,108,255,0.7)",},],global: false, // 缺省為 false},},label: {show: true,color: "#fff",fontWeight: "bold",position: "inside",formatter: function (para) {return "{cnNum|" + para.data.value[2] + "}";},rich: {cnNum: {fontSize: 13,color: "#D4EEFF",},},},symbol: "circle",symbolSize: function (val) {if (val[2] === 0) {return 0;}let a = (maxSize4Pin - minSize4Pin) / (max - min);let b = maxSize4Pin - a * max;return a * val[2] + b * 1.2;},data: convertData(allData),zlevel: 1,},
],

其中

let convertData = function (outdata) {let res = [];for (let i = 0; i < outdata.length; i++) {let geoCoord = geoCoordMap[outdata[i].name];if (geoCoord) {res.push({name: outdata[i].name,value: geoCoord.concat(outdata[i].value),});}}return res;
};

值類似于

{name : "河南",value: [113.0668, 33.8818, 140]
}
{type: "scatter",coordinateSystem: "geo",rippleEffect: {brushType: "stroke",},showEffectOn: "render",itemStyle: {color: {type: "radial",x: 0.5,y: 0.5,r: 0.5,colorStops: [{offset: 0,color: "rgba(5,80,151,0.8)",},{offset: 0.5,color: "rgba(0,108,255,0.7)",},{offset: 1,color: "rgba(5,80,151,0.2)",},],global: false, // 缺省為 false},},label: {show: true,color: "#fff",fontWeight: "bold",position: "inside",formatter: function (para) {return "{cnNum|" + para.data.value[2] + "}";},rich: {cnNum: {fontSize: 13,color: "#D4EEFF",},},},symbol: "circle",symbolSize: function (val) {if (val[2] === 0) {return 0;}let a = (maxSize4Pin - minSize4Pin) / (max - min);let b = maxSize4Pin - a * max;return a * val[2] + b * 1.2;},data: convertData(allData),zlevel: 1,
},

放射線

<template><div :class="className" :style="{ height: height, width: width }" />
</template><script>
import * as echarts from "echarts";
import resize from "@/assets/utils/resize.js";
import "@/assets/utils/china.js";export default {name: "BarChart",mixins: [resize],props: {className: {type: String,default: "chart",},width: {type: String,default: "100%",},height: {type: String,default: "100%",},title: {type: String,default: "",},chartData: {type: Object,default: () => {return {};},},},data() {return {chart: null,};},watch: {chartData: function () {this.initChart();},},async mounted() {await this.$nextTick();this.initChart();},beforeDestroy() {if (!this.chart) {return;}this.chart.dispose();this.chart = null;},methods: {initChart() {if (!this.chart) {this.chart = echarts.init(this.$el);}var chinaGeoCoordMap = {黑龍江: [127.9688, 45.368],內蒙古: [110.3467, 41.4899],吉林: [125.8154, 44.2584],北京市: [116.4551, 40.2539],遼寧: [123.1238, 42.1216],河北: [114.4995, 38.1006],天津: [117.4219, 39.4189],山西: [112.3352, 37.9413],陜西: [109.1162, 34.2004],甘肅: [103.5901, 36.3043],寧夏: [106.3586, 38.1775],青海: [101.4038, 36.8207],新疆: [87.9236, 43.5883],西藏: [91.11, 29.97],四川: [103.9526, 30.7617],重慶: [108.384366, 30.439702],山東: [117.1582, 36.8701],河南: [113.4668, 34.6234],江蘇: [118.8062, 31.9208],安徽: [117.29, 32.0581],湖北: [114.3896, 30.6628],浙江: [119.5313, 29.8773],福建: [119.4543, 25.9222],江西: [116.0046, 28.6633],湖南: [113.0823, 28.2568],貴州: [106.6992, 26.7682],云南: [102.9199, 25.4663],廣東: [113.12244, 23.009505],廣西: [108.479, 23.1152],海南: [110.3893, 19.8516],上海: [121.4648, 31.2891],};let chinaDatas = [[{name: "黑龍江",value: 0,},],[{name: "內蒙古",value: 0,},],[{name: "吉林",value: 0,},],[{name: "遼寧",value: 0,},],[{name: "河北",value: 0,},],[{name: "天津",value: 0,},],[{name: "山西",value: 0,},],[{name: "陜西",value: 0,},],[{name: "甘肅",value: 0,},],[{name: "寧夏",value: 0,},],[{name: "青海",value: 0,},],[{name: "新疆",value: 0,},],[{name: "西藏",value: 0,},],[{name: "四川",value: 0,},],[{name: "重慶",value: 0,},],[{name: "山東",value: 0,},],[{name: "河南",value: 0,},],[{name: "江蘇",value: 0,},],[{name: "安徽",value: 0,},],[{name: "湖北",value: 0,},],[{name: "浙江",value: 0,},],[{name: "福建",value: 0,},],[{name: "江西",value: 0,},],[{name: "湖南",value: 0,},],[{name: "貴州",value: 0,},],[{name: "廣西",value: 0,},],[{name: "海南",value: 0,},],[{name: "上海",value: 1,},],];let allpoints = Object.values(chinaGeoCoordMap);let convertData = function (data) {let res = [];for (let i = 0; i < data.length; i++) {let dataItem = data[i];let fromCoord = chinaGeoCoordMap[dataItem[0].name];let toCoord = allpoints[Math.floor(Math.random() * allpoints.length)];if (fromCoord && toCoord) {res.push([{coord: fromCoord,value: dataItem[0].value,},{coord: toCoord,},]);}}return res;};var series = [];series.push({type: "lines",zlevel: 2,effect: {show: true,period: 4, //箭頭指向速度,值越小速度越快trailLength: 0.02, //特效尾跡長度[0,1]值越大,尾跡越長重symbol: "arrow", //箭頭圖標symbolSize: 5, //圖標大小},lineStyle: {normal: {width: 1, //尾跡線條寬度opacity: 1, //尾跡線條透明度curveness: 0.3, //尾跡線條曲直度color: "#17F5FF",},},data: convertData(chinaDatas),},{type: "effectScatter",coordinateSystem: "geo",zlevel: 2,rippleEffect: {//漣漪特效period: 4, //動畫時間,值越小速度越快brushType: "stroke", //波紋繪制方式 stroke, fillscale: 4, //波紋圓環最大限制,值越大波紋越大},label: {normal: {show: true,position: "right", //顯示位置offset: [5, 0], //偏移設置formatter: function (params) {//圓環顯示文字return params.data.name;},fontSize: 10,color: "#FFFFFF",},emphasis: {show: true,},},symbol: "circle",symbolSize: function (val) {return 5 + val[2] * 5; //圓環大小},itemStyle: {normal: {show: false,color: "#17F5FF",},},data: chinaDatas.map(function (dataItem) {return {name: dataItem[0].name,value: chinaGeoCoordMap[dataItem[0].name].concat([dataItem[0].value,]),};}),});let option = {tooltip: {show: false,trigger: "item",backgroundColor: "rgba(166, 200, 76, 0.82)",borderColor: "#FFFFCC",showDelay: 0,hideDelay: 0,enterable: true,transitionDuration: 0,extraCssText: "z-index:100",formatter: function (params) {//根據業務自己拓展要顯示的內容var res = "";var name = params.name;var value = params.value[params.seriesIndex + 1];res ="<span style='color:#fff;'>" +name +"</span><br/>數據:" +value || 0;return res;},},geo: {map: "china",zoom: 1.2,label: {emphasis: {show: false,},},roam: false, //是否允許縮放itemStyle: {normal: {color: "rgba(51, 69, 89, .5)", //地圖背景色borderColor: "#516a89", //省市邊界線00fcff 516a89borderWidth: 1,},emphasis: {color: "rgba(37, 43, 61, .5)", //懸浮背景},},},series: series,};this.chart.setOption(option);},},
};
</script>

背景變色

<template><div :class="className" :style="{ height: height, width: width }" />
</template><script>
import * as echarts from "echarts";
import resize from "@/assets/utils/resize.js";
import "@/assets/utils/china.js";export default {name: "BarChart",mixins: [resize],props: {className: {type: String,default: "chart",},width: {type: String,default: "100%",},height: {type: String,default: "100%",},title: {type: String,default: "",},chartData: {type: Object,default: () => {return {};},},},data() {return {chart: null,};},watch: {chartData: function () {this.initChart();},},async mounted() {await this.$nextTick();this.initChart();},beforeDestroy() {if (!this.chart) {return;}this.chart.dispose();this.chart = null;},methods: {initChart() {if (!this.chart) {this.chart = echarts.init(this.$el);}let dataList = [{name: "重慶",value: 347,},{name: "浙江",value: 59,},{name: "云南",value: 115,},{name: "新疆維吾爾自治區",value: 45,},{name: "香港",value: 81,},{name: "西藏自治區",value: 5,},{name: "天津",value: 121,},{name: "四川",value: 23,},{name: "上海",value: 1140,},{name: "陜西",value: 143,},{name: "山西",value: 77,},{name: "山東",value: 209,},{name: "青海",value: 3,},{name: "寧夏回族自治區",value: 1,},{name: "內蒙古自治區",value: 7,},{name: "遼寧",value: 386,},{name: "江西",value: 67,},{name: "江蘇",value: 464,},{name: "湖南",value: 6,},{name: "湖北",value: 614,},{name: "黑龍江",value: 53,},{name: "河南",value: 140,},{name: "河北",value: 190,},{name: "海南",value: 24,},{name: "貴州",value: 2,},{name: "廣西壯族自治區",value: 77,},{name: "廣東",value: 449,},{name: "甘肅",value: 7,},{name: "福建",value: 23,},{name: "北京",value: 603,},{name: "安徽",value: 29,},];let option = {tooltip: {show: true,formatter: function (params) {if (params.value.length > 1) {return "&nbsp;&nbsp;" + params.name + ":" + params.value[2];} else {return "&nbsp;&nbsp;" + params.name + ":" + (params.value || 0);}},},visualMap: {show: false,seriesIndex: [0],inRange: {color: ["#A5DCF4", "#006edd"],},},geo: {map: "china",zoom: 1.2,show: true,roam: false,label: {emphasis: {show: false,},},layoutSize: "100%",itemStyle: {borderColor: "rgba(147, 235, 248, 1)",borderWidth: 2,shadowColor: "rgba(10,76,139,1)",shadowOffsetY: 0,shadowBlur: 60,},},series: [{type: "map",map: "china",aspectScale: 0.75,zoom: 1.2,label: {normal: {show: true,color: "#4dccff",},emphasis: {show: false,},},itemStyle: {normal: {areaColor: {x: 0,y: 0,x2: 1,y2: 1,colorStops: [{offset: 0,color: "#073684", // 0% 處的顏色},{offset: 1,color: "#061E3D", // 100% 處的顏色},],},borderColor: "#215495",borderWidth: 1,},emphasis: {areaColor: "#061E3D",},},data: dataList,},],};this.chart.setOption(option);},},
};
</script>

無論是數據可視化的新手還是經驗豐富的開發者,ECharts 都能成為你探索數據世界的得力助手。希望這些整理的資源和技巧能夠幫助你在項目中更高效地運用 ECharts,讓你的數據講述更加生動有力。

記住,每一次的數據展示都是一次與用戶的對話。通過精心設計的圖表,我們不僅能傳遞信息,更能激發思考、引導決策。期待你在下一個項目中大放異彩,用你的創意點亮每一個數據故事!

繼續加油吧,小伙伴們!如果有任何問題或心得,歡迎隨時交流分享。我們都在這條不斷進步的路上,共同前行!

—— 小二,在評論區等你們能給提一些優秀的意見!!!?

? ? ? ? ? ? ? ? 讓我們鼓勵共勉之

?

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

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

相關文章

內存分配器ptmalloc2、tcmalloc、jemalloc,結構設計、內存分配過程詳解

1. 引言 博主之前做過一個高并發內存池的項目實踐&#xff0c;在實踐中對于內存分配器的內存分配過程理解更加深刻了。在此期間&#xff0c;翻查了不少資料以及博客&#xff0c;發現源碼分享的博客不多&#xff0c;能生動完整的講述ptmalloc2、tcmalloc、jemalloc它們的結構設…

【擁抱AI】Deer-Flow字節跳動開源的多智能體深度研究框架

最近發現一款可以對標甚至可能超越GPT-Researcher的AI深度研究應用&#xff0c;Deer-Flow&#xff08;Deep Exploration and Efficient Research Flow&#xff09;作為字節跳動近期開源的重量級項目&#xff0c;正以其模塊化、靈活性和人機協同能力引發廣泛關注。該項目基于 La…

openfeign與dubbo調用下載excel實踐

一、前言 openfeign和dubbo均是rpc框架 RPC&#xff08;Remote Procedure Call&#xff0c;遠程過程調用&#xff09;框架 是一種允許程序像調用本地方法一樣調用遠程服務器上函數的技術。它隱藏了底層網絡通信的復雜性&#xff0c;讓開發者可以專注于業務邏輯&#xff0c;實現…

解密企業級大模型智能體Agentic AI 關鍵技術:MCP、A2A、Reasoning LLMs-強化學習算法

解密企業級大模型智能體Agentic AI 關鍵技術&#xff1a;MCP、A2A、Reasoning LLMs-強化學習算法 現在我們的核心問題是有一些同學會知道要才能強化學習。為什么才能強化學習&#xff1f;是實現AGI。例如從這個其實你從第一階段開始以后&#xff0c;就是chatbot&#xff0c;這…

音頻分類的學習

1.深度學習PyTorch入門-語音分類 https://blog.csdn.net/sinat_41787040/article/details/129795496 https://github.com/musikalkemist/pytorchforaudio https://github1s.com/musikalkemist/pytorchforaudio/blob/main/04%20Creating%20a%20custom%20dataset/urbansoundda…

美SEC主席:探索比特幣上市證券交易所

作者/演講者&#xff1a;美SEC主席Paul S. Atkins 編譯&#xff1a;Liam 5月12日&#xff0c;由美國SEC加密貨幣特別工作組發起的主題為《資產上鏈&#xff1a;TradFi與DeFi的交匯點》系列圓桌會議如期舉行。 會議期間&#xff0c;現任美SEC主席Paul S. Atkins發表了主旨演講。…

Qt file文件操作詳解

1.引言 很多應用程序都具備操作文件的能力&#xff0c;包括對文件進行寫入和讀取&#xff0c;創建和刪除文件等等&#xff0c;甚至某些應用程序的就是為了操作文件&#xff0c;像WPS Office。基于此Qt框架中專門提供了對文件操作的類&#xff1a;QFile。 2.QFile文件操作 QF…

【測試開發知識儲備】之Jacoco(Java Code Coverage)

文章目錄 Jacoco是什么Jacoco的主要功能&#xff08;一&#xff09;多樣化覆蓋率指標分析&#xff08;二&#xff09; 豐富的報告生成&#xff08;三&#xff09;實時數據收集 Jacoco的工作原理&#xff08;一&#xff09;字節碼增強&#xff08;二&#xff09;測試執行與數據收…

Docker 介紹與使用

Docker 文章目錄 Docker介紹與虛擬機的比較啟動速度占用資源 優勢更容易遷移更容易維護更容易擴展 使用場景持續集成提供可伸縮的云服務搭建微服務架構 鏡像與容器鏡像構成&#xff08;分層結構&#xff09;鏡像與容器的區別 安裝 Docker常用命令介紹鏡像相關容器相關 實戰&…

《AI大模型應知應會100篇》第62篇:TypeChat——類型安全的大模型編程框架

第62篇&#xff1a;TypeChat——類型安全的大模型編程框架 摘要 在構建 AI 應用時&#xff0c;一個常見的痛點是大語言模型&#xff08;LLM&#xff09;輸出的不確定性與格式不一致問題。開發者往往需要手動解析、校驗和處理模型返回的內容&#xff0c;這不僅增加了開發成本&a…

upload-labs通關筆記-第5關 文件上傳之.ini繞過

目錄 一、ini文件繞過原理 二、源碼審計 三、滲透實戰 1、查看提示 2、制作.user.ini文件 &#xff08;1&#xff09;首先創建一個文本文件 &#xff08;2&#xff09;保存文件名為.user.ini 2、制作jpg后綴腳本 &#xff08;1&#xff09;創建一個文本文件 &#xf…

為什么 Linux 上默認沒有 host.docker.internal

在 Linux 環境中&#xff0c;host.docker.internal 是 Docker 為容器提供的一個特殊 DNS 名稱&#xff0c;用于指向宿主機的 IP 地址&#xff08;類似 macOS/Windows 中的行為&#xff09;。但這個功能在 Linux 上默認不啟用&#xff0c;需要手動配置才能使用。以下是詳細解釋和…

C++GO語言微服務和服務發現②

01 創建go-micro項目-查看生成的 proto文件 02 創建go-micro項目-查看生成的main文件和handler ## 創建 micro 服務 命令&#xff1a;micro new --type srv test66 框架默認自帶服務發現&#xff1a;mdns。 使用consul服務發現&#xff1a; 1. 初始consul服務發現&…

Redis--常見數據類型List列表

目錄 一、概念 二、命令 2.1 LPUSH 2.2 LPUSHX 2.3 RPUSH 2.4 RPUSHX 2.5 LRANGE 2.6 LPOP 2.7 RPOP 2.8 LINDEX 2.9 LINSERT 2.10 LLEN 2.11 阻塞版本命令 三、內部編碼 一、概念 列表類型是用來存儲多個有序的字符串&#xff0c;列表中的每個字符串稱為元素&…

QListWedget控件使用指南

QListWedget公共函數 函數簽名功能描述QListWidget(QWidget *parent nullptr)構造函數&#xff0c;創建一個QListWidget對象&#xff0c;可指定父部件&#xff08;默認為nullptr&#xff09;。virtual ~QListWidget()虛析構函數&#xff0c;釋放QListWidget對象及其資源。voi…

Seata源碼—1.Seata分布式事務的模式簡介

大綱 1.Seata分布式事務框架簡介 2.Seata AT模式實現分布式事務的機制 3.Seata AT模式下的寫隔離機制 4.Seata AT模式下的讀隔離機制 5.官網示例說明Seata AT模式的工作機制 6.Seata TCC模式的介紹以及與AT模式區別 7.Seata Saga模式的介紹 8.單服務多個庫的分布式事務…

【Qt】之音視頻編程2:QtAV的使用篇

QtAV 基本播放控制功能實現&#xff08;C & QML&#xff09; QtAV 提供了完整的播放控制 API&#xff0c;支持 播放、暫停、停止、快進快退、截屏 等功能。以下是具體實現方法&#xff1a; 1. C 控制方式 基本播放控制 #include <QtAV> #include <QtAV/AVPlaye…

歌詞滾動效果

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><!-- 設置標簽頁圖標 --><link rel"shortcut icon&…

基于大模型的TIA診療全流程智能決策系統技術方案

目錄 一、多模態數據融合與預處理系統1.1 數據接入模塊1.2 數據預處理偽代碼二、TIA智能預測模型系統2.1 模型訓練流程2.2 混合模型架構偽代碼三、術中智能監測系統3.1 實時監測流程3.2 實時預測偽代碼四、智能診療決策系統4.1 手術方案推薦流程4.2 麻醉方案生成偽代碼五、預后…

Java 日期解析與格式化:從標準格式到自然語言解析

使用 Java 搭配 Apache Commons Lang3 和 Natty 庫&#xff0c;實現靈活高效的日期解析與格式化。 一、背景 將不同格式的日期統一成一個格式。日期格式可能有以下幾種類型&#xff1a; 標準格式&#xff1a;2024-02-28、14/05/2022、2002年5月6日非英文月份縮寫&#xff1a;…