目标:
学习将传感器数据进行可视化。
内容:
使用Pyecharts库绘制简单的折线图和柱状图。
探索不同的图表类型,如散点图、饼图等。
将实时温度数据绘制成实时动态图表。
基础知识:
海龟编辑器:python.codemao.cn
常用图表类型:Examples – Apache ECharts
数据类型 —— 列表、字典,数组
任务一:数据采集—— 采集八法云 MQTT服务器数据
import requests
import time
uid='b97314f5d26b4b68a035d8383e429260'
topic='tempMonitor'
def get_msg(t):
pass
x = get_msg(topic)
print(x)
任务二:数据处理和清洗 —— Pandas
import requests
import time
uid='b97314f5d26b4b68a035d8383e429260'
topic='tempMonitor'
def get_msg(t):
pass
def get_five_data():
a = []
pass
return a
a = get_five_data()
print(a)
任务三:数据可视化 —— Pyecharts
from pyecharts.charts import Line
time = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
temp = [11, 11, 15, 13, 12, 13, 10]
line = (Line()
.add_xaxis(time)
.add_yaxis('温度', temp, is_smooth=True)
)
line.render('line.html')
综合任务:云数据可视化
import requests
import time
uid='b97314f5d26b4b68a035d8383e429260'
topic='tempMonitor'
def get_msg(t):
url=f'https://apis.bemfa.com/va/getmsg?uid={uid}&topic={t}&type=1'
res = requests.get(url).json()
c = res['data'][0]['msg']
t = res['data'][0]['time']
id = res['data'][0]['unix']
return c,t,id
line_data = []
while 1:
x = get_msg(topic)
print('获取数据中...')
if x not in line_data:
line_data.append(x)
time.sleep(1)
if len(line_data)==6:
break
print(line_data)
lst_c = [i[0] for i in line_data]
lst_t = [i[1][11:] for i in line_data]
print(lst_c)
print(lst_t)
from pyecharts.charts import Line
line = Line()
line.add_xaxis(lst_t)
line.add_yaxis("温度", lst_c)
# render 会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件
# 也可以传入路径参数,如 bar.render("mycharts.html")
line.render('line-c.html')