「Python+Django」在网页实现天气数据可视化(气温变化图和天气词云)
「Python+Django」在网页实现天气数据可视化(气温变化图和天气词云)
1 描述
通过 python 作为后端,运用django框架,将天气数据可视化。包括:
- 气温变化趋势图,显示某个城市某年的气温变化或城市某年某月的气温变化(最高温和最低温);
- 天气词云,显示某城市,某年、某年某月、近几年的天气情况,可视化地表示哪种天气出现的多。
实现效果:
python+django实现天气数据可视化
2 代码
2.1 django模型
只定义了一个记录模型:
class Record(models.Model): id = models.IntegerField(verbose_name="记录id", primary_key=True) date = models.DateField(verbose_name="日期") week = models.CharField(verbose_name="星期", max_length=255) maxtemp = models.FloatField(verbose_name="最高气温") mintemp = models.FloatField(verbose_name="最低气温") weather = models.CharField(verbose_name="天气", max_length=255) wind = models.CharField(verbose_name="风向", max_length=255) city = models.CharField(verbose_name="城市", max_length=255)
2.2 django视图
只需要学会基本的使用django的方法,加上python的基本知识,就能实现这个系统功能。由于文件较多,又存在诸多重复,且代码比较简单,就不一一列举了,以下用伪代码的方式展示,实现方法。
2.2.1 index首页
def index(request): return render(request, 'index.html')
2.2.2 datachart 图表页(伪代码)
def datachart(request, city, year): figtitle = "" # 图表标题 fig = plt.figure(figsize=(16, 8)) # 定义画布 ax = fig.add_subplot(111) # 初始化一个图 date = 从数据库读取 日期 == year 的所有日期 min_temp = 从数据库读取 城市 == city 且日期 == year 的全部最低气温 max_temp = 从数据库读取 城市 == city 且日期 == year 的全部最高气温 # 画图 ax.plot(date,min_temp,label="最低气温") ax.plot(date,max_temp,label="最高气温") # 构造返回值 context = {"image": data, # 图表 "city": city, # 城市 "figtitle": figtitle, # 图标题 "citylist": city_list, # 城市列表 } return render(request, 'datachart.html', context=context)
2.2.3 wordscloud 词云页(伪代码)
def wordscloud(request, city, year): city = eval(city) year = eval(year) month = request.GET.get('month') # 处理天气词句 1. 从数据库获取 城市 == city, 日期 == year的全部天气 2. 对天气数据进行处理,获取到天气类型 3. 对天气类型进行统计出现次数 4. 根据统计数量的不同,绘制词云 5. 将词云返回到模板中
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通