基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化(1)

在这里插入图片描述

基于mysql数据使用Django做数据可视化

from django.contrib.auth.decorators import login_required
from django.http import HttpResponse
from django.shortcuts import render, redirect
from django.shortcuts import render
from pyecharts import options as opts
from pyecharts.charts import Line, Bar, Pie, Grid

Create your views here.

from django.shortcuts import render
from pyecharts.globals import ThemeType

from api.service.task_service import get_user, top_sunny_cities, monthly_max_temperature_difference,
top_cities_high_wind, top_rainy_cities, monthly_rainy_days, yearly_min_temperatures, daily_wind_speed,
daily_temperature_difference, register_user

def login_page(request):
if request.method == ‘POST’:
username = request.POST.get(‘username’)
password = request.POST.get(‘password’)
user = get_user(username,password)
if user is not None:
return redirect(‘home’)
else:
return render(request, ‘login.html’, {‘error_message’: ‘Invalid login credentials.’})

return render(request, ‘login.html’)

def register_view(request):

处理注册逻辑

if request.method == ‘GET’:
username = request.GET.get(‘username’)
password = request.GET.get(‘password’)
if username and password:
register_user(username,password)
return HttpResponse(“注册成功!”)
return render(request, ‘register.html’) # 使用你的注册模板路径

def home(request):
print(2)
return render(request, ‘home.html’)

def data_analysis(request, button_id):
return render(request, ‘data_analysis.html’, {‘button_id’: button_id})

def data_analysis(request, button_id):

根据按钮 ID 进行不同的处理

if button_id == 1:
x,y = top_sunny_cities()
line_chart = (
Line()
.add_xaxis(xaxis_data=x)
.add_yaxis(series_name=“晴天个数”, y_axis=y)
.set_global_opts(title_opts=opts.TitleOpts(title=“一年中每个城市晴天个数的top10”))
)
chart_html = line_chart.render_embed()
button_name = “折线图”
elif button_id == 2:
x,y = monthly_max_temperature_difference()
line_chart = (
Line()
.add_xaxis(xaxis_data=x)
.add_yaxis(series_name=“温差值”, y_axis=y)
.set_global_opts(title_opts=opts.TitleOpts(title=“北京一年中每个月的温差变化”))
)
chart_html = line_chart.render_embed()
button_name = “折线图”
elif button_id == 3:
x,y = top_cities_high_wind()
bar_chart = (
Bar()
.add_xaxis(xaxis_data=x)
.add_yaxis(series_name=“3级风速次数”,y_axis=y)
.set_global_opts(title_opts=opts.TitleOpts(title=“出现3级以上风速的top10个城市”))
)
chart_html = bar_chart.render_embed()
button_name = “条形图”
elif button_id == 4:
x, y = top_rainy_cities()
bar_chart = (
Bar()
.add_xaxis(xaxis_data=x)
.add_yaxis(series_name=“雨天数量”, y_axis=y)
.set_global_opts(title_opts=opts.TitleOpts(title=“多雨城市的top10”))
)
chart_html = bar_chart.render_embed()
button_name = “条形图”

elif button_id == 5:
x, y = monthly_rainy_days()
pie = Pie()
pie.add(“”, list(zip(x, y)))
pie.set_global_opts(title_opts={“text”: “杭州每月雨天变化”, “subtext”: “2022年”},
legend_opts=opts.LegendOpts(orient=“vertical”, pos_right=“right”, pos_top=“center”))
chart_html = pie.render_embed()
button_name = “饼图”

elif button_id == 6:
x, y = yearly_min_temperatures()
line_chart = (
Line()
.add_xaxis(xaxis_data=x)
.add_yaxis(series_name=“温度”, y_axis=y)
.set_global_opts(title_opts=opts.TitleOpts(title=“城市一年中最低的温度top10”))
)
chart_html = line_chart.render_embed()
button_name = “折线图”

elif button_id == 7:
x,y=daily_temperature_difference()

创建饼图

pie = (
Pie(init_opts=opts.InitOpts(width=“800px”, height=“600px”))
.add(
series_name=“南京10月份1~10号温差变化”,
data_pair=list(zip(x, y)),
radius=[“40%”, “75%”], # 设置内外半径,实现空心效果
label_opts=opts.LabelOpts(is_show=True, position=“inside”),
)
.set_global_opts(title_opts=opts.TitleOpts(title=“南京10月份1~10号温差变化”),
legend_opts=opts.LegendOpts(orient=“vertical”, pos_right=“right”, pos_top=“center”),
)
.set_series_opts( # 设置系列选项,调整 is_show 阈值
label_opts=opts.LabelOpts(is_show=True)
)
)
chart_html = pie.render_embed()
button_name = “饼图”

elif button_id == 8:
x,y=daily_wind_speed()

bar_chart = (
Bar()
.add_xaxis(xaxis_data=x)
.add_yaxis(series_name=“风速级别”, y_axis=y)
.set_global_opts(title_opts=opts.TitleOpts(title=“南京10月份每天的风速变化”))
)
chart_html = bar_chart.render_embed()
button_name = “条形图”

return render(request, ‘data_analysis.html’, {‘chart_html’: chart_html, ‘button_name’: button_name})

展示Django项目运行结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如有遇到问题可以找小编沟通交流哦。另外小编帮忙辅导大课作业,学生毕设等。不限于python,java,大数据等。
在这里插入图片描述

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
img

以上大数据开发知识点,真正体系化!**

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
[外链图片转存中…(img-zF8UxfnS-1712559334076)]

  • 24
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值