【创意来源】
成长营第四期了,还差两块勋章,其中一块就是“行空板”勋章,那这次就好好玩“行空板”吧。
行空板的课程一共有15节课,如下图所示,基本完成了全部的学习内容。
作业打算将第12课《肺活量数据可视化报告》和第15课《天气助手》结合起来,行空板既可以显示不同城市的实况天气,又可以显示七日天气数据。
【作品原理】
第15课《天气助手》中的实况天气数据,是访问天气API网站(https://tianqiapi.com/)来获取的,访问特定的网址,就可以查看当前所在城市的天气数据。所得到的数据,其实就是一个Python中的“字典”,那么通过冒号前的“键”,就可以获得冒号后的“值”。
那么想要获得七日天气数据,就得输入对应七日的天气接口,当然也可以获取更多天数的天气数据,和获取七日天气数据的方法是相似的。
七日天气数据就不是单单一个“字典”了,分析这个结构,可以看出是每日的天气数据作为一个小“字典”,七日数据组合成一个Python中的“列表”,这个“列表”作为“键”名为“data”的“值”,再和其他数据组成一个大“字典”。
所以,要提取七日天气数据,就要用到Python中的“列表”。
材料清单
- 行空板 X1 链接
【设计过程】
1.提取数据原理
这一步最为关键,如程序所示:
首先将网址链接的七日天气数据作为一个大“字典”赋值给变量data,然后提取出“字典”里“键”名为“data”的数据赋值给“列表”,接着在“列表”里提取出“索引”为第一个(即“索引”为“0”)的数据作为一个小“字典”,最后在小“字典”里获取“键”名为“date”的“值”,这样我们就可以从七日天气数据里获取到我们想要的数据了。
2.展示实况天气
这里完成实况天气的界面,与第15课《天气助手》中的界面类似,只不过多了一个“日间温度”和“夜间温度”。因为七日天气数据中是区分日间温度和夜间温度的。
下面是完成这个界面的程序段,参考课程中的程序,增加了“日间温度”和“夜间温度”。
添加切换城市按钮,实现开始显示当前所在城市天气,当切换不同的城市后,按下行空板A键更新对应城市天气。
3.获取七日数据
首先要将七日天气数据分成日间温度和夜间温度,分别存入相对应的列表中去。对七日天气数据提取出“字典”里“键”名为“data”的数据赋值给“列表”,然后遍历索引值从“0”到“6”,将相对应的“日间温度”和“夜间温度”数据存入相对应的列表。这里需注意,从天气数据中读取的数据是文本数据,需要将其转换成整数数据,才能在后续的图表中应用。
4.绘制折线图
参考第12课《肺活量数据可视化报告》的程序,区别在于这里为双折线图,日间温度和夜间温度做两条不同颜色的折线图。需要注意的是,其中映射范围为-20到50(大致的温度取值范围),另外因为是7个数据,为了美观,数据之间的宽度设为30单位。
如图所示,为双色折线图的效果。
图表背景需要根据实际设置为纵坐标-20到50,另外程序中用了回调函数做成的“折线图”按钮,按下“折线图”按钮,行空板上开始绘制七日日间温度和七日夜间温度数据的双色折线图。
5.绘制柱状图
同样参考第12课《肺活量数据可视化报告》的程序,与课程中的区别不大,仅仅是需要将平均数进行保留小数点后一位的操作。
最后完成所有的程序,连接行空板,连接网络,进行调试:
【学习收获】
这一期的行空板项目,通过课程的学习,基本学会了编程控制行空板的方法,学会了行空板上的屏幕交互、屏幕显示、光敏探测、蜂鸣器控制等功能,最后结合了几个的知识点,汇集出了一个简单且实用的小项目。
除此以外,在课程的基础内容获取天气API网站的数据上,提升了如何对获取的数据通过“字典”、“列表”等Python程序进行处理,获益匪浅。日后做项目,就可以通过各种各样的API网络资源来获取数据,极大拓展了项目资源的多样性。
附件为本项目的程序和截图,以及所涉及到的行空板图形化Python入门教程中的相关课程。
附件
DeadWalking2024.01.15
学习一下!!
JOVI2024.01.15
互相学习