1、项目介绍
技术栈
采用 Python 语言开发,基于 Flask 框架搭建后端服务,使用 MySQL 数据库进行数据存储,结合数据分析与 Echarts 可视化技术,通过 HTML 构建前端页面并搭建数据大屏。
功能模块
· 可视化大屏主页面展示
· 渔业产能分布地图可视化展示
· 海洋捕捞品类可视化展示
· 从业人员比重可视化展示
· 淡水捕捞品种数量分布图可视化展示
· 海洋捕捞较去年增长可视化展示
· 全国渔业经济总产值可视化展示
· 渔业加工能力增减可视化展示
项目介绍
本系统基于 Flask 框架构建渔业资源可视化分析大屏,以中国地图为核心,搭配柱状图、折线图、饼图、雷达图等多种图表,展示渔业总产值、捕捞品类、加工能力、从业人员等多维度数据。系统实现渔业产能分布地图、海洋捕捞品类占比、从业人员比重雷达图、淡水捕捞品种分布、海洋捕捞年度增长对比、全国渔业经济总产值分类统计及渔业加工能力变化趋势等可视化功能,为渔业资源监控、产业结构分析及行业管理决策提供直观的数据支持。
2、项目界面
可视化分析大屏
该页面是渔业资源可视化分析大屏,以中国地图为核心,搭配柱状图、折线图、饼图、雷达图等多种图表,展示渔业总产值、捕捞品类、加工能力、从业人员等多维度数据,实现渔业资源的全面可视化监控与分析。
海洋捕捞品类分布
该图是渔业资源可视化分析系统中的海洋捕捞品类分布饼图模块,以饼状图形式直观呈现各类海洋捕捞品类的占比情况,支持点击查看对应品类的详细数据,可清晰展示不同捕捞品类的结构分布,辅助渔业资源的品类分析与管理。
从业人员比重分布
该图是渔业资源可视化分析系统中的从业人员分布雷达图模块,以雷达图形式直观呈现渔业相关各类从业人员的分布情况,清晰展示不同维度从业人员的规模差异,可辅助渔业从业人员结构分析与行业管理决策。
淡水捕捞品种数量分布图
该图是渔业资源可视化分析系统中的淡水捕捞种类分布饼图模块,以饼状图形式直观呈现各类淡水捕捞品类的占比情况,支持点击查看对应品类的详细数据,清晰展示不同捕捞品类的结构分布,辅助淡水渔业资源的品类分析与管理。
海洋捕捞较去年增长图
该图是渔业资源可视化分析系统中的海洋捕捞相较上一年增长柱状图模块,以柱状图形式直观呈现各类海洋捕捞品类的年度增减百分比,支持点击查看对应品类的详细数据,清晰展示不同捕捞品类的年度变化趋势,辅助渔业捕捞的年度对比与趋势分析。
全国渔业经济总产值
该图是渔业资源可视化分析系统中的全国经济总产值分类柱状图模块,以分组柱状图形式直观呈现不同年份各相关产业的产值情况,支持点击查看对应产业的详细数据,清晰展示各产业产值的年度变化与结构分布,辅助渔业相关经济的分析与管理。
渔业加工能力增减
该图是渔业资源可视化分析系统中的渔业加工能力增减折线图模块,以折线图形式直观呈现不同渔业加工品类的能力变化趋势,支持点击查看对应品类的增减详情,清晰展示各类加工环节的波动情况,辅助渔业加工产业的动态监控与分析。
3、项目说明
一、技术栈简要说明
本系统采用 Python 语言开发,基于 Flask 框架搭建后端服务,使用 MySQL 数据库进行数据存储,结合数据分析与 Echarts 可视化技术,通过 HTML 构建前端页面并搭建数据大屏。
二、功能模块详细介绍
· 可视化大屏主页面展示
该页面是渔业资源可视化分析大屏,以中国地图为核心,搭配柱状图、折线图、饼图、雷达图等多种图表,展示渔业总产值、捕捞品类、加工能力、从业人员等多维度数据,实现渔业资源的全面可视化监控与分析,为用户提供一站式数据概览入口。
· 渔业产能分布地图可视化展示
该模块以中国地图为载体,直观呈现全国各省份的渔业产能分布情况,通过地图热力图或区域着色方式展示产能高低差异,帮助用户快速识别渔业产能领先地区,辅助区域渔业资源分析与决策。
· 海洋捕捞品类可视化展示
该模块以饼状图形式直观呈现各类海洋捕捞品类的占比情况,支持点击查看对应品类的详细数据,可清晰展示不同捕捞品类的结构分布,辅助渔业资源的品类分析与管理,帮助用户了解海洋捕捞的主要品种构成。
· 从业人员比重可视化展示
该模块以雷达图形式直观呈现渔业相关各类从业人员的分布情况,清晰展示不同维度从业人员的规模差异,涵盖渔业户、养殖业人员、捕捞从业人员等类别,可辅助渔业从业人员结构分析与行业管理决策。
· 淡水捕捞品种数量分布图可视化展示
该模块以饼状图形式直观呈现各类淡水捕捞品类的占比情况,支持点击查看对应品类的详细数据,清晰展示不同捕捞品类的结构分布,辅助淡水渔业资源的品类分析与管理,帮助用户掌握淡水捕捞的主要品种构成。
· 海洋捕捞较去年增长可视化展示
该模块以柱状图形式直观呈现各类海洋捕捞品类的年度增减百分比,支持点击查看对应品类的详细数据,清晰展示不同捕捞品类的年度变化趋势,辅助渔业捕捞的年度对比与趋势分析,帮助用户了解捕捞量的动态变化。
· 全国渔业经济总产值可视化展示
该模块以分组柱状图形式直观呈现不同年份各相关产业的产值情况,支持点击查看对应产业的详细数据,清晰展示各产业产值的年度变化与结构分布,辅助渔业相关经济的分析与管理,帮助用户掌握渔业经济的整体发展态势。
· 渔业加工能力增减可视化展示
该模块以折线图形式直观呈现不同渔业加工品类的能力变化趋势,支持点击查看对应品类的增减详情,清晰展示各类加工环节的波动情况,辅助渔业加工产业的动态监控与分析,帮助用户了解加工能力的时间变化规律。
三、项目总结
本系统基于 Flask 框架构建渔业资源可视化分析大屏,以中国地图为核心,搭配柱状图、折线图、饼图、雷达图等多种图表,展示渔业总产值、捕捞品类、加工能力、从业人员等多维度数据。系统实现渔业产能分布地图、海洋捕捞品类占比、从业人员比重雷达图、淡水捕捞品种分布、海洋捕捞年度增长对比、全国渔业经济总产值分类统计及渔业加工能力变化趋势等可视化功能。通过直观的图表展示,用户可清晰查看各省渔业产能分布、捕捞品类结构、从业人员构成及经济产值变化,为渔业资源监控、产业结构分析及行业管理决策提供直观的数据支持。系统界面清晰,图表交互友好,能够帮助用户快速理解渔业资源数据的特征与规律。
4、核心代码
fromflaskimportFlask,render_templatefromflask_sqlalchemyimportSQLAlchemyfrompyecharts.chartsimportMapfrompyechartsimportoptionsasoptsimportpandasaspd app=Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI']='mysql://username:password@localhost/dbname'app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=Falsedb=SQLAlchemy(app)classProductStatistics(db.Model):id=db.Column(db.Integer,primary_key=True,autoincrement=True)product_name=db.Column(db.String(255),nullable=False)year=db.Column(db.Integer)production=db.Column(db.BigInteger)absolute_change=db.Column(db.BigInteger)percentage_change=db.Column(db.Float)@app.route('/')defindex():# 读取数据df=pd.read_excel('data/全国数据渔业产值.xlsx')# 预处理数据,将省份名称转换为地图可以识别的形式province_name_map={'北京':'北京市','天津':'天津市','河北':'河北省','山西':'山西省','蒙':'内蒙古自治区','辽宁':'辽宁省','吉林':'吉林省','黑龙江':'黑龙江省','上海':'上海市','江苏':'江苏省','浙江':'浙江省','安徽':'安徽省','福建':'福建省','江西':'江西省','山东':'山东省','海南':'海南省','湖北':'湖北省','湖南':'湖南省','广西':'广西壮族自治区','重庆':'重庆市','四川':'四川省','贵州':'贵州省','云南':'云南省','西藏':'西藏自治区','陕西':'陕西省','甘肃':'甘肃省','青海':'青海省','宁夏':'宁夏回族自治区','新疆':'新疆维吾尔自治区','河南':'河南省','广东':'广东省'}df['省份']=df['省份'].str.strip()df['省份']=df['省份'].map(province_name_map)# 将 '合 计' 列的数据转换为数值类型,错误的转换将被设置为 NaNdf['合 计']=pd.to_numeric(df['合 计'],errors='coerce')# 使用 0 填充 NaN 值df['合 计']=df['合 计'].fillna(0)defmap_visualize(data_frame,province_col,value_col,title):province=data_frame[province_col].tolist()value=data_frame[value_col].tolist()c=(Map().add(title,[list(z)forzinzip(province,value)],"china").set_global_opts(title_opts=opts.TitleOpts(title=title),visualmap_opts=opts.VisualMapOpts(max_=max(value)),))returnc# 创建地图map_total=map_visualize(df,"省份","合 计","渔业生产值")# 渲染地图到 HTML 文件map_total.render("渔业生产值.html")# 最后使用 render_embed 方法渲染地图map_total=map_total.render_embed()result={'all_count':1000,'today_count':20}returnrender_template('index.html',map_total=map_total,result=result)if__name__=="__main__":app.run(debug=True)importpandasaspdfrompyecharts.chartsimportBarfrompyechartsimportoptionsasopts# 读取Excel文件df=pd.read_excel('data/全国渔业经济总产值.xlsx')# 提取年份列作为x轴数据categories=df['指 标'].tolist()# 提取2018年和2019年的数据,并将非数值类型的数据和空值替换为0data_2018=(pd.to_numeric(df['2018年'],errors='coerce').fillna(0)/100000000).round(1).tolist()data_2019=(pd.to_numeric(df['2019年'],errors='coerce').fillna(0)/100000000).round(1).tolist()# 创建柱状图对象bar=Bar(init_opts=opts.InitOpts(width="1600px",height="800px"))# 添加x轴数据bar.add_xaxis(categories)# 添加y轴数据bar.add_yaxis('2018年',data_2018)bar.add_yaxis('2019年',data_2019)# 设置全局配置项bar.set_global_opts(toolbox_opts=opts.ToolboxOpts(item_size=10,pos_top="0%",pos_left="0%"),legend_opts=opts.LegendOpts(type_="scroll",pos_left="right",orient="vertical",item_width=10,item_height=10,textstyle_opts=opts.TextStyleOpts(color="white")),# 设置y轴的最小值为0yaxis_opts=opts.AxisOpts(min_=0,axislabel_opts=opts.LabelOpts(formatter="{value}亿")),)# 渲染图表bar.render('全国渔业经济总产值.html')