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

}

欢迎补充,一起进步。

相关推荐
kyriewen2 小时前
Anthropic 估值逼近万亿美元,Claude Sonnet 5 + Claude Science 一天两连发
前端·ai编程·claude
小徐_23334 小时前
Wot UI 2.2.0 发布:Button 新增 subtle,VideoPreview 预览体验继续增强
前端·微信小程序·uni-app
倔强的石头_4 小时前
《Kingbase护城河》——猎捕慢查询:执行计划的微观解析与索引调优实战
数据库
天蓝色的鱼鱼6 小时前
关于 CSS 你可能不知道的属性,但关键时刻很有用
前端·css
SelectDB6 小时前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
泯泷7 小时前
第 2 篇:设计第一套字节码:Opcode、Instruction 与 Constant Pool
前端·javascript·安全
妙码生花7 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十五):优化细节、网络请求封装
前端·后端·ai编程
泯泷7 小时前
第 1 篇:从 1 + 2 开始:亲手写出第一台 JSVM
前端·javascript·安全
团团崽_七分甜7 小时前
Spring Boot 核心知识点总结
前端