echarts画风向杆

1.安装echarts

2.引入echarts

4.获取数据,转换数据格式

windProfile.title.text = `${moment(time.searchTime0, 'YYYY-MM-DD HH:mm:ss').format(

'YYYY-MM-DD HH:mm'

)}-${moment(time.searchTime1, 'YYYY-MM-DD HH:mm:ss').format('YYYY-MM-DD HH:mm')}------水平风风羽图`

data.forEach(item => {

windProfile.xAxis.data.push(moment(item.time, 'YYYY-MM-DD HH:mm:ss').format('HH:mm'))

arr = item.fengKuoXianItems.filter(

i => heightRange.less * 1000 <= i.height && i.height <= heightRange.greater * 1000

)

arr.forEach(item1 => {

if (item1.direction && item1.speed) {

windProfile.series0.data.push({

value: [

moment(item.time, 'YYYY-MM-DD HH:mm:ss').format('HH:mm'),

item1.height,

transformationSpeed(item1.speed),

item1.direction > 9999 '' : getWindPower(item1.direction),

item1.speed > 9999 '' : getWindSpeed(item1.speed),

item1.speed > 9999 '' : item1.speed.toFixed(2)

],

label: {

rotate: -item1.direction,

color: `rgba(${getColor(colorData.value0.stops, item1.speed).stop.join(',')})`

}

})

}

})

})

1)转换字体根据风速转字体

const transformation = [

//风速转字体

1, 'm', 0,

3, 'k', 1,

5, '1', 2,

7, '2', 3,

9, '3', 4,

11, '4', 5,

13, '5', 6,

15, '6', 7,

17, '7', 8,

19, 'n', 9,

21, '8', 10,

23, '9', 11,

25, ':', 12,

27, ';', 13,

29, '\<', 14,

31, '=', 15,

33, '\>', 16,

35, '', 17,

37, '@', 18,

39, 'A', 19,

41, 'B', 20,

43, 'C', 21,

45, 'D', 22,

47, 'E', 23,

49, 'F', 24,

51, 'G', 25,

53, 'H', 26,

55, 'I', 27,

57, 'J', 28,

999, 'K', 28

]

//根据风速转字体

const transformationSpeed = speed => {

for (let t = 0; t < transformation.length; t++) if (Number(speed) <= transformationt0) return transformationt1

return '0'

}

注意修改echarts里series的配置项

2)转换风向

const windPower = [

//风向

11.25, '北风',

33.75, '东北风',

56.25, '东北风',

78.75, '东北风',

101.25, '东风',

123.75, '东南风',

146.25, '东南风',

168.75, '东南风',

191.25, '南风',

213.75, '西南风',

236.25, '西南风',

258.75, '西南风',

281.25, '西风',

303.75, '西北风',

326.25, '西北风',

348.75, '西北风',

1e3, '西北风'

]

// 获取风向

const getWindPower = e => {

for (let t = 0; t < windPower.length; t++) if (e < windPowert0) return windPowert1

return '无风'

}

3)转换风速

const windSpeed = [

//风速

0.2, 0,

1.5, 1,

3.3, 2,

5.4, 3,

7.9, 4,

10.7, 5,

13.8, 6,

17.1, 7,

20.7, 8,

24.4, 9,

28.4, 10,

32.6, 11,

36.9, 12,

41.4, 13,

46.1, 14,

50.9, 15,

56, 16,

61.2, 17

]

//获取风速

const getWindSpeed = e => {

for (let t = 0; t < windSpeed.length; t++) if (e < windSpeedt0) return windSpeedt1.toFixed(2)

return '0'

}

4)转换风字体颜色

const colorData = ref([

{

stops: [

{ value: 0.2, stop: 176, 224, 248, 1 },

{ value: 2.6, stop: 144, 208, 248, 1 },

{ value: 3.4, stop: 120, 184, 248, 1 },

{ value: 5.5, stop: 80, 160, 240, 1 },

{ value: 8, stop: 60, 120, 220, 1 },

{ value: 10.8, stop: 40, 100, 200, 1 },

{ value: 13.9, stop: 0, 176, 8, 1 },

{ value: 17.2, stop: 248, 248, 0, 1 },

{ value: 20.8, stop: 248, 168, 0, 1 },

{ value: 24.5, stop: 248, 80, 0, 1 },

{ value: 28.5, stop: 248, 0, 0, 1 },

{ value: 32.7, stop: 248, 24, 80, 1 },

{ value: 37, stop: 240, 48, 152, 1 },

{ value: 46.2, stop: 232, 80, 232, 1 },

{ value: 51, stop: 224, 72, 72, 1 },

{ value: 56.1, stop: 200, 56, 56, 1 },

{ value: 61.3, stop: 160, 24, 32, 1 }

],

fieldName: 'wind'

}

])

// 风字体颜色

const getColor = (e, speed) => {

let n = ee.length - 1

const i = e.find(e => {

if (speed <= e.value) return (n = e), n

})

return i && (n = i), n

}

欢迎补充,一起进步。

相关推荐
weixin_460443561 分钟前
企业考试系统如何对接OA、钉钉和企业微信?SSO单点登录、组织同步与权限一致性设计
java·开发语言·数据库
xywww1684 分钟前
真实后台页实测:Opus 5 看图写前端的可用边界在哪
linux·服务器·前端·数据库·人工智能·gpt
小小尚@23 分钟前
AE脚本-AE Actions v1.1.8 操作动作记录器
开发语言·前端·javascript·jupyter·postman
大家的林语冰1 小时前
👍 超越 ESLint,Oxc 优先采用 TypeScript 7,Rust 和 Go 梦幻联动!
前端·javascript·typescript
上海云盾商务经理杨杨1 小时前
SQL 盲注入渗透实战!无报错页面也能成功注入
数据库·sql
秋田君1 小时前
QT_绘图原理双缓冲机制
服务器·数据库·qt
一条闲鱼_mytube2 小时前
深入理解 Pinecone 向量数据库:从云服务到索引原理,一篇讲透
数据库
樊小肆2 小时前
# 你还在等DeepSeek官方 agent Harness‌? 来试试 DeepSeeker-Code吧
前端·人工智能·后端
樊小肆2 小时前
2568 万 token 才花 2 块 2:聊聊 DeepSeeker-Code 怎么吃满上下文缓存
前端·人工智能·后端
许彰午2 小时前
政务低代码平台实战⑤:双输出模式——存DB与导出JSP的完整链路
数据库·低代码·政务