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

}

欢迎补充,一起进步。

相关推荐
知了学历孙老师2 小时前
小自考的校考和统考,出题方和难度差在哪
java·大数据·前端
ShineWinsu4 小时前
对于JavaScript:操作元素的解析
开发语言·前端·javascript·面试·web·dom·元素
zyseo84 小时前
谷歌SEO 准首页词挖掘脚本:找出排在第 8-20 名的隐藏流量
大数据·数据库·人工智能
福兮说5 小时前
JSON 格式正确,数据就可靠吗?我用一份自编配置检查类型与空值
java·前端·json
xiaogai_gai6 小时前
仅查询策略实战:从金蝶云·星空旗舰版定时拉取收料通知单
大数据·数据库·python
数据工匠老o6 小时前
异构数据库DDL同步:260条链路的结构变更自动适配方案
数据库·架构
程序员老赵6 小时前
Docker 部署青龙面板:轻松搭建定时任务管理平台
前端·docker·开源
Swot6 小时前
Asciidoctor 公式数字下标错位问题:原因分析与解决方案
前端
Swot6 小时前
leo-editor 中将 Markdown 内容转成 asciidoc 格式
前端
狒狒AI7 小时前
Remotion / GSAP+Three / HyperFrames / Skia 四栈实测:代码渲染知识视频的选栈方法(附开源技能)
前端·人工智能·aigc