当前位置: 首页 > news >正文

建设项目自主验收公示的网站主流网站设计软件

建设项目自主验收公示的网站,主流网站设计软件,西安网站建设 北郊,北京代理记账公司1.题目要求 本次课程设计要求使用Python和ECharts实现数据可视化大屏。要求每个人的数据集不同#xff0c;用ECharts制作Dashboard#xff08;总共至少4图#xff09;#xff0c;要求输入查询项#xff08;地点和时间#xff09;可查询数据#xff0c;查询的数据的地理…1.题目要求 本次课程设计要求使用Python和ECharts实现数据可视化大屏。要求每个人的数据集不同用ECharts制作Dashboard总共至少4图要求输入查询项地点和时间可查询数据查询的数据的地理位置展示在地图上绘制一个带时间轴的动态图展示不同时间的数据根据查询的数据另外绘制至少2个图。 2.需求分析 2.1. 设计背景 中国是世界上最大的人口国家之一也是全球第二大经济体。为了更好地了解中国经济发展与人口变化的趋势和关系以及为政府决策、企业战略规划和学术研究提供参考需要设计一个展示中国经济发展与人口变化的可视化大屏。 2.2. 功能需求 2.2.1. 数据收集和整理 系统需要能够从本地数据源中获取各省经济发展和人口变化的数据。这些数据可以包括各省的GDP、各地区人口数量、人口迁移数据、人口年龄构成、各地区性别构成、各地区每 10 万人口中拥有的各类受教育程度人数、各地区 15 岁及以上人口平均受教育年限等信息。 2.2.2. 数据可视化 系统需要使用Pyecharts库将收集到的数据以图表和地图的形式进行可视化展示。Pyecharts是基于Echarts的Python包装库用于在Python环境中使用Echarts进行数据可视化。Echarts是一个流行的JavaScript数据可视化库由百度开发和维护。它提供了丰富的图表类型和交互功能可以帮助开发人员创建动态、交互式和美观的图表。Pyecharts的目的是让Python开发人员能够方便地使用Echarts库通过Python代码生成Echarts所支持的各种图表。Pyecharts提供了一套Python的API和语法使得使用Echarts变得更加简单和直观。开发人员可以使用Python来处理数据、进行图表配置和样式定义然后通过Pyecharts将数据转换为JavaScript代码最终在Web浏览器中展示图表。通过Pyecharts开发人员可以充分利用Echarts的功能和特性同时享受Python编程的便利性。Pyecharts与Echarts保持了紧密的关联因此可以轻松地利用Echarts的文档、社区和示例来支持图表的定制和优化。可以使用柱状图、水球图、地图、饼状图等图表类型来展示各省的经济和人口数据以呈现多样化的视觉效果和信息展示帮助用户更全面、直观地了解中国各省经济发展与人口变化的情况。 2.2.3. 查询功能 查询功能系统应该支持多维度的数据展示允许用户自定义选择感兴趣的指标和时间范围用户可以查询每个省份的GDP随年度变化情况根据自己的需求查看各省经济发展和人口变化的不同方面。 2.2.4. 后端支持 系统后端使用Flask作为Web框架处理前端请求和数据传递并将本地数据传递给前端进行展示。Flask是一个简单、轻量级且易于使用的Python Web框架。它提供了一个简洁的API和基本的功能使开发人员能够快速构建Web应用程序。Flask的设计理念注重简单性和最小化的核心使开发过程更加直观和高效。它采用MVC架构模式通过装饰器定义URL路由和视图函数使开发人员能够轻松处理不同的URL请求。 2.2.5. 时间轴和动态展示 提供时间轴功能使用户可以在不同年份之间进行切换以查看各省经济和人口数据的历史演变。支持动态展示功能可以播放各省数据的变化过程帮助用户观察和理解经济和人口的趋势变化。 2.2.6. 数据缩放 提供数据缩放和放大功能使用户能够对图表进行缩放和放大操作以查看细节和更具体的数据。 2.3. 用户群体 2.3.1. 政府决策者 政府官员和决策者可以利用该可视化大屏来了解各省经济发展和人口变化的情况从而制定相应的政策和规划。他们可以通过大屏上的图表和数据对比分析各省之间的差异评估政策实施的效果并进行合理的资源分配和决策制定。 2.3.2. 企业战略规划者 企业的战略规划者可以借助该可视化大屏来了解各省经济和人口的动态变化评估各地市场潜力和竞争情况。他们可以通过可视化图表和数据的分析制定针对不同省份的市场进入策略、销售策略和产品定位以及人力资源的配置等。 2.3.3. 学术研究者 学者和研究人员可以利用该可视化大屏来进行学术研究深入探索中国各省经济发展和人口变化的规律和影响因素。他们可以通过可视化展示的数据和图表进行数据挖掘和统计分析发现潜在的研究领域和问题并进行相关研究和论文撰写。 2.3.4. 公众和媒体 公众和媒体可以通过该可视化大屏获得各省经济发展和人口变化的信息提高对国家和各省发展的了解和认知。他们可以通过可视化的方式更加直观地了解经济和人口的趋势了解各省份的发展情况并从中获取有益的信息和观点。 3.产品设计 3.1. 产品概述 中国经济发展与人口变化可视化大屏是一个基于Pyecharts和Flask的Web应用程序旨在为用户提供直观、交互式地展示中国各省份的经济数据和人口变化情况的功能。该产品将通过可视化图表和地图的形式帮助用户深入了解各省的经济发展趋势和人口变化状况并支持用户进行数据的比较和分析。 3.2. 目标用户 该产品的目标用户包括政府决策者、经济研究人员、企业分析师等对中国各省经济和人口情况感兴趣的专业人士。 3.3. 主要功能 3.3.1. 数据可视化展示 通过Pyecharts库将收集到的各省经济和人口数据以折线图、柱状图、地图等图表类型进行可视化展示。用户可以通过选择不同的指标和时间范围动态呈现各省的经济发展趋势和人口变化情况。 3.3.2. 省份详情查看 用户可以通过点击地图上的特定省份或查询省份列表中的省份查看该省的详细经济和人口数据。产品将提供包括各省GDP与人口状况的详细数据并以图表形式展示以便用户更好地了解该省的发展状况。加入鼠标交互功能用户可以使用鼠标悬停在图表上以获取详细数据信息或显示数据标签增强对图表的交互性和信息展示。 3.3.3. 时间轴功能 本产品将提供时间轴功能用户可以通过拖动时间轴来切换不同的时间点以便观察各省的经济和人口变化情况随时间的推移。 3.4. 用户界面设计 本产品通过合理的布局、配色和交互设计提供直观、易用和美观的用户体验帮助用户轻松浏览和理解数据深入了解各省的发展情况。 在界面设计方面考虑功能模块的划分和排布将不同的功能模块进行合理的组织以便用户能够快速找到所需的功能和信息。同时要关注页面的整体平衡和信息层次的清晰性避免信息过于拥挤或混乱。 选择适合的配色方案以突出重要信息和图表的可读性。合理运用色彩帮助用户更好地区分数据和模块提高界面的可视化效果和美观度。 注重用户的直观感受和操作便捷性通过清晰的图标和按钮设计引导用户进行交互操作。考虑用户的使用习惯和心理预期使界面布局和交互流程符合用户的预期提高产品的可用性和易用性。 3.4. 技术实现 产品将使用Flask作为后端框架搭建Web应用程序。前端界面将使用HTML和JavaScript实现通过Pyecharts库生成图表和地图的可视化效果。后端与前端将通过API接口进行数据交互和传输。 4.产品前后端开发 4.1. pyecharts可视化 4.1.1. 导入需要的模块 from pyecharts.charts import *导入了pyecharts库中的所有图表类型例如Line折线图、Bar柱状图、Pie饼图和Map地图使你能够创建不同类型的图表。 from pyecharts import options as opts导入pyecharts中的options模块该模块提供了各种配置图表属性的选项。 from pyecharts.commons.utils import JsCode导入commons.utils模块中的JsCode类JsCode类允许你将自定义的JavaScript代码嵌入到图表中。 import pandas as pd将pandas库导入为pdpandas是Python中流行的数据处理和分析库。 4.1.2. 数据读取与预处理 读取人口数据通过使用pd.read_csv函数读取名为“各地区人口.csv”的CSV文件然后使用drop函数删除索引为0和1的行使用rename函数将列名“Unnamed: 1”改为“人口数”将“各地区人口”改为“地区”。 df pd.read_csv(./data/各地区人口.csv, usecols[各地区人口, Unnamed: 1]) df.drop(labels[0, 1], axis0, inplaceTrue) df.rename(columns{Unnamed: 1:人口数, 各地区人口:地区}, inplaceTrue)设置地区坐标创建了一个名为coord的字典其中包含了全国各省市、自治区的经纬度信息。 coord {湖北: [114.31667, 30.51667],广东: [113.23333, 23.16667],北京: [116.41667, 39.91667],上海: [121.48, 31.22],辽宁: [123.38, 41.8],江西: [115.90000, 28.68333],四川: [104.06, 30.67],安徽: [117.27, 31.86],广西: [108.33, 22.84],新疆: [87.68, 43.77],江苏: [118.78, 32.04],河北: [114.48, 38.03],浙江: [120.19, 30.26],湖南: [113, 28.21],甘肃: [103.82, 36.07],福建: [119.28000, 26.08],贵州: [106.71, 26.57],海南: [110.35, 20.02],河南: [113.65, 34.76],黑龙江: [126.63, 45.75],吉林: [125.35, 43.88],内蒙古: [111.65, 40.82],宁夏: [106.27, 38.47],山东: [117, 36.65],山西: [112.53, 37.87],陕西: [108.95, 34.27],天津: [117.2, 39.13],西藏: [91.11, 29.97],云南: [102.73, 25.04],重庆: [106.54, 29.59],青海: [101.74, 36.56]}处理人口数据使用循环遍历df的每一行提取地区名和人口数并在coord字典中查找对应的经纬度信息。然后将地区名、经度、纬度和人口数组成一个列表添加到data_pair列表中。 data_pair [] for idx, row in df.iterrows():name row[地区].replace( , )try:value coord[name]value.append(row[人口数])data_pair.append([name, value])except KeyError:if name 现役军人:soldier row[人口数]elif name 全国[5]:total row[人口数]读取人口年龄构成数据通过使用pd.read_csv函数读取名为“全国人口年龄构成.csv”的CSV文件并使用drop函数删除索引为0和1的行。 df pd.read_csv(./data/全国人口年龄构成.csv) df.drop(labels[0, 1], axis0, inplaceTrue)处理人口年龄构成数据使用循环遍历df的每一行提取人口年龄构成和对应的百分比并将它们组成一个列表添加到data_pair_age列表中。 data_pair_age [] for idx, row in df.iterrows():data_pair_age.append([row[全国人口年龄构成].replace(其中, ), float(row[Unnamed: 2])])读取性别构成数据通过使用pd.read_csv函数读取名为“各地区性别构成.csv”的CSV文件并使用drop函数删除索引为0和1的行。 df pd.read_csv(./data/各地区性别构成.csv) df.drop(labels[0, 1], axis0, inplaceTrue)处理性别构成数据提取男性和女性的百分比并将它们组成一个列表存储在data_pair_sex中。 data_pair_sex [(男性, float(df.iloc[0, 1])), (女性, float(df.iloc[0, 2]))] 读取教育程度数据通过使用pd.read_csv函数读取名为“各地区每 10 万人口中拥有的各类受教育程度人数.csv”的CSV文件并使用drop函数删除索引为0的行。 df pd.read_csv(./data/各地区每 10 万人口中拥有的各类受教育程度人数.csv) df.drop(labels[0], axis0, inplaceTrue)处理教育程度数据计算大学、高中、初中、小学和其他受教育程度的百分比并将它们组成一个列表存储在data_pair_edu中。 data_pair_edu [(大学, float(df.iloc[0, 1])/1e3), (高中, float(df.iloc[0, 2])/1e3), (初中, float(df.iloc[0, 3])/1e3), (小学, float(df.iloc[0, 4])/1e3),(其他, 100-(float(df.iloc[0, 4])float(df.iloc[0, 3])float(df.iloc[0, 2])float(df.iloc[0, 1]))/1e3)]最后对data_pair_edu列表中的数据进行格式化保留两位小数并存储回data_pair_edu列表。 data_pair_edu [(x, round(y, 2)) for x, y in data_pair_edu] 通过以上操作数据已经准备好用于后续的可视化处理。 4.1.3. 全国各省人口统计图 chart Map3D(init_optsopts.InitOpts(width1000px,height600px,themedark,bg_color#000) )创建一个Map3D对象并设置图表的初始选项。width和height设置图表的宽度和高度theme设置主题为darkbg_color设置背景颜色为黑色。 chart.add_schema(maptypechina,ground_color#999,shadinglambert,emphasis_label_optsopts.LabelOpts(is_showTrue),itemstyle_optsopts.ItemStyleOpts(border_width0.2,border_colorrgb(0,0,0),),light_optsopts.Map3DLightOpts(main_shadow_qualityhigh,is_main_shadowTrue,main_intensity1,main_alpha30,ambient_cubemap_texturehttps://echarts.apache.org/examples/data-gl/asset/canyon.hdr,ambient_cubemap_diffuse_intensity0.5,ambient_cubemap_specular_intensity0.5),post_effect_optsopts.Map3DPostEffectOpts(is_enableTrue,is_ssao_enableTrue,ssao_radius1,ssao_intensity1) )添加地图的基本设置。maptype指定地图类型为中国地图ground_color设置地面颜色为灰色shading使用lambert渲染方式emphasis_label_opts设置强调标签的显示选项itemstyle_opts设置地图项的样式选项包括边框宽度和边框颜色light_opts设置光照选项包括阴影质量、光照强度和光照透明度ambient_cubemap_texture设置环境立方体贴图的路径ambient_cubemap_diffuse_intensity和ambient_cubemap_specular_intensity设置环境立方体贴图的漫反射和镜面反射强度post_effect_opts设置后期效果选项包括是否启用和SSAO屏幕空间环境光遮蔽的半径和强度。 chart.add(GDP,data_pairdata_pair,type_bar3D,bar_size1.5,min_height3,shadinglambert,label_optsopts.LabelOpts(is_showFalse,formatterJsCode(function(data){return data.name : data.value[2];}),) )以上代码添加具体的数据。这里使用的数据类型是bar3D表示三维柱状图。data_pair是一个包含地区名称、坐标和人口数的列表。 chart.set_global_opts()函数用来设置图表的全局选项。 visualmap_opts指定了图表的视觉映射设置用于用颜色表示数据值。is_showFalse决定是否显示视觉映射。在这里设置为False所以不会显示视觉映射。type_color参数指定视觉映射使用颜色来表示数据值。dimension2这个参数表示视觉映射基于数据的第二个维度。min_1e7设置视觉映射的最小值。max_1e8设置视觉映射的最大值。range_color: 这个参数指定一个颜色列表用于表示不同范围的数据值。 title_opts选项指定图表的标题设置。title全国各省人口统计这个参数设置图表的主标题。subtitle数据来自全国第七次人口普查数据未包含港澳台地区。参数设置图表的副标题提供有关数据来源的附加信息。pos_left2%设置标题相对于图表容器的水平位置。pos_top1%设置标题相对于图表容器的垂直位置。title_textstyle_optsopts.TextStyleOpts(color#00BFFF, font_size20):设置标题的文本样式选项。它指定了标题的颜色和字体大小。 tooltip_opts选项指定图表的提示框设置。is_showFalse决定是否显示提示框在这里设置为False所以不会显示提示框。 legend_opts指定图表的图例设置。is_showFalse决定是否显示图例在这里设置为False所以不会显示图例。 graphic_opts允许向图表添加自定义图形它是一个图形项的列表。opts.GraphicGroup:是一个用于将多个图形项分组的容器。opts.GraphicItem表示一个图形项并提供其位置和其他属性的选项。opts.GraphicRect表示一个矩形图形项并提供其位置、形状和样式的选项。opts.GraphicText表示一个文本图形项并提供其位置、样式和内容的选项。 4.1.4. 人口画像饼状图 展示了第七次人口普查中人口年龄构成、人口性别比例、受教育程度、户籍所在地、少数民族占比和流动人口占比等信息。 Pie是创建饼图的类。init_opts指定了饼图的初始化设置。themedark设置饼图的主题为暗色调。width1000px设置饼图的宽度为1000像素。height400px设置饼图的高度为400像素。bg_colorrgb(0,0,0)设置饼图的背景颜色为黑色。pie.add()方法用于添加饼图的数据系列。 data_pair_age是一个包含年龄数据的列表表示年龄数据系列。 center[20%, 35%]指定了饼图的中心位置。 radius[15%, 25%]指定了饼图的半径范围。 label_optsopts.LabelOpts(formatter{b}\n{c}%)设置了饼图上标签的格式显示类别和百分比。 pie.set_global_opts()方法设置饼图的全局选项。 legend_optsopts.LegendOpts(is_showFalse)是设置图例的选项这里设置为不显示图例。 pie.render_notebook()方法用于在notebook中渲染饼图并显示。 例如下面我们详细介绍graphic_opts。 graphic_opts是设置图形绘制选项的列表。opts.GraphicGroup是创建图形组的类。graphic_itemopts.GraphicItem(id_2, leftcenter, top40px)是设置图形项的属性包括ID、左边距和上边距。 children[]是图形组的子元素列表。 opts.GraphicRect是创建矩形图形的类。 graphic_itemopts.GraphicItem(leftcenter, topcenter, z1)用于设置矩形图形项的属性包括左边距、上边距和Z轴值。 graphic_shape_optsopts.GraphicShapeOpts(width950, height320)用于设置矩形图形的形状选项包括宽度和高度。 graphic_basicstyle_optsopts.GraphicBasicStyleOpts(fillrgba(0,0,0,0), line_width5, stroke#fff)为设置矩形图形的基本样式选项包括填充颜色、线宽和描边颜色。 graphic_opts[opts.GraphicGroup(graphic_itemopts.GraphicItem(id_2, leftcenter, top40px),children[opts.GraphicRect(graphic_itemopts.GraphicItem(leftcenter, topcenter, z1),graphic_shape_optsopts.GraphicShapeOpts(width950, height320),graphic_basicstyle_optsopts.GraphicBasicStyleOpts(fillrgba(0,0,0,0),line_width5,stroke#fff,),)],)]可视化效果展示 4.1.5. 全国各省人口年龄构成统计图 全国各省人口年龄构成统计图是一个水平条形图展示了全国各省的人口年龄构成情况。图表使用暗色主题具有自定义的宽度、高度和背景颜色。每个数据系列都具有标签和阴影效果条形图的颜色分别为橙色、蓝色和红色。下面是对一些选项和参数的介绍 bar Bar(init_optsopts.InitOpts(themedark, width1000px, height1000px, bg_color#000))用于创建一个水平条形图对象并设置初始选项包括主题、宽度、高度和背景颜色。 bar.add_xaxis(df[地区].tolist())用于设置 x 轴的数据使用 DataFrame 中的 地区 列转换为列表作为 x 轴的刻度标签。 bar.add_yaxis(0—14岁, df[0—14岁].tolist(), stack1, label_optsopts.LabelOpts(is_showTrue, formatter{c}%, positioninsideLeft), itemstyle_opts{...})用于添加 y 轴的数据系列包括系列名称、数据列表、堆叠设置、标签选项和样式选项。这里添加了一个代表0—14岁的数据系列。 类似地bar.add_yaxis(15—59岁, df[15—59岁].tolist(), stack1, label_optsopts.LabelOpts(is_showTrue, formatter{c}%, positioninsideLeft), itemstyle_opts{...})用于添加另一个 y 轴的数据系列代表15—59岁。bar.add_yaxis(60岁及以上, df[60岁及以上].tolist(), stack1, label_optsopts.LabelOpts(is_showTrue, formatter{c}%, positioninsideLeft), itemstyle_opts{...})用于添加第三个 y 轴的数据系列代表60岁及以上。 bar.set_global_opts(xaxis_optsopts.AxisOpts(is_showFalse, max_100), yaxis_optsopts.AxisOpts(...),legend_optsopts.LegendOpts(...), title_optsopts.TitleOpts(...))用于设置全局选项包括 x 轴选项、y 轴选项、图例选项和标题选项。 bar.reversal_axis()用于将图表的 x 轴和 y 轴进行反转使条形图变为水平显示。 bar.set_colors([orange, blue, red])用于设置条形图的颜色按顺序分别为 0—14岁、15—59岁 和 60岁及以上 数据系列的颜色。 可视化效果展示图片太长只展示部分 4.1.6. 全国各省性别构成统计图 与之前的代码类似全国各省性别构成统计图也是一个水平条形图展示了全国各省的人口性别构成情况数据来源于全国第七次人口普查未包含港澳台地区。图表使用暗色主题具有自定义的宽度、高度和背景颜色。每个数据系列都具有标签和阴影效果条形图的颜色分别为蓝色和红色。 4.1.7. 全国各省人口受教育程度统计图 通过使用 pyecharts 库创建水平条形图展示了全国各省人口的教育程度分布情况。图表以暗色主题为背景每个教育程度都表示为一个数据系列包括大学含大专、高中含中专、初中、小学和其他。每个数据系列在水平方向上堆叠显示以显示不同教育程度的比例关系。条形图的每个条形代表一个省份通过条形的长度来表示该省份在相应教育程度上的人口比例。图表的颜色、标签和阴影效果增强了可视化效果帮助观察者更直观地理解和比较各省人口的教育程度分布情况。还添加了标题、副标题和图例以提供更详细的图表说明。标题显示为“全国各省人口接受教育程度”副标题指出数据来源为全国第七次人口普查数据并且未包含港澳台地区。标题和副标题的样式通过设置字体颜色、字体大小和位置等参数进行自定义以增强可读性和视觉吸引力。图表的 x 轴和 y 轴都进行了设置。x 轴不显示y 轴的轴线和刻度线也被隐藏使得图表更加简洁。图表的颜色使用了蓝色、深蓝色、天蓝色、粉红色和红色为不同的教育程度赋予了视觉上的差异使得图表更易于区分和理解。 通过该全国各省人口受教育程度统计图可以直观地展示全国各省人口的教育程度分布情况帮助用户从空间角度了解各省之间的差异并且可以直接观察到不同教育程度的人口比例。这样的可视化工具对于政府决策、教育规划和社会发展研究等领域都具有重要意义。 4.1.8. 全国各省GDP排名变化地图 首先使用pandas的read_csv函数读取名为分省年度数据.csv的CSV文件并将数据存储在名为data的DataFrame中 data pd.read_csv(./data/分省年度数据.csv, encodinggbk, index_col0) 提取data DataFrame的列名和索引名并分别存储在years和citys变量中 years list(data.keys()) # 获取列名 citys list(data.index) # 获取索引名使用循环遍历每个年份将每个年份对应的数据存储为一个字典。字典中的键time用来存储年份键data用于存储城市和对应的数据值再将每个年份的字典添加到datas列表中 for y in years:dict_year {}dict_year[time] ydata_list [[i, j] for i, j in zip(citys, list(data[y]))]dict_year[data] data_listdatas.append(dict_year)之后定义get_map函数用于生成指定年份的地图图表。从datas列表中获取指定年份的数据并根据数据值进行排序选取前32个省份。计算数据中的最小值和最大值然后使用Map类创建地图并添加数据对。设置地图的全局选项包括标题、视觉映射选项和图例等并返回地图对象。 具体来说map_data [i[data] for i in datas if int(i[time]) year][0] 根据输入的年份year从datas中获取相应的数据并将其存储在map_data变量中。datas是一个包含数据的列表每个数据项包含一个字典其中包括data和time字段。    map_data sorted(map_data, key(lambda x: x[1]), reverseTrue)[:32] 对map_data进行排序按照第二个元素GDP值进行降序排序并只取前32个省份的数据。min_data, max_data (min([d[1] for d in map_data]),max([d[1] for d in map_data])) 计算map_data中的最小和最大的GDP值并将其分别存储在min_data和max_data变量中。 之后创建一个地图图表对象map_chartMap(init_optsopts.InitOpts(themedark,width1000px,height1000px,bg_color#000))用于创建一个地图图表对象并设置初始选项。其中themedark指定了图表的主题为暗色风格width1000px和height1000px设置了图表的宽度和高度为1000像素bg_color#000设置了背景颜色为黑色。add(series_name, data_pairmap_data)向图表中添加数据data_pairmap_data指定了数据的键值对。使用set_global_opts方法设置图表的全局选项。在这里我们设置了图表的标题选项、视觉映射选项和图例选项。 title_optsopts.TitleOpts(title{}年以来中国各省GDP排名情况.format(year), subtitleGDP单位:亿元, pos_left5%, pos_top1%,title_textstyle_optsopts.TextStyleOpts(color#00BFFF,font_size20))设置了图表的标题选项。title表示标题内容其中的{}年以来中国各省GDP排名情况使用了year变量的值进行动态填充subtitle表示副标题内容pos_left和pos_top表示标题的位置偏移title_textstyle_opts指定了标题的文本样式选项其中color#00BFFF设置了标题文本的颜色为亮蓝色font_size20设置了标题文本的字体大小为20。 visualmap_optsopts.VisualMapOpts(min_min_data, max_max_data, pos_left10, pos_topcenter, range_text[High, Low], range_color[lightskyblue, yellow, orangered], textstyle_optsopts.TextStyleOpts(color#ddd))是设置视觉映射选项用于对数据进行可视化。min_和max_分别指定了数据的最小值和最大值pos_left和pos_top设置了视觉映射的位置偏移range_text设置了数据范围的文本显示range_color设置了数据范围的颜色映射textstyle_opts指定了文本的样式选项其中color#ddd设置了文本的颜色为灰色。 def get_map(year: int):map_data [i[data] for i in datas if int(i[time]) year][0]map_data sorted(map_data, key(lambda x: x[1]), reverseTrue)[:32] # 关键点对柱形图展示有帮助min_data, max_data (min([d[1] for d in map_data]),max([d[1] for d in map_data]))# 绘制地图map_chart (Map(init_optsopts.InitOpts(themedark,width1000px,height1000px,bg_color#000)).add(series_name, data_pairmap_data).set_global_opts(title_optsopts.TitleOpts(title{}年以来中国各省GDP排名情况.format(year),subtitleGDP单位:亿元,pos_left5%,pos_top1%,title_textstyle_optsopts.TextStyleOpts(color#00BFFF, font_size20)),visualmap_optsopts.VisualMapOpts(min_min_data,max_max_data,pos_left10,pos_topcenter,range_text[High, Low],range_color[lightskyblue, yellow, orangered],textstyle_optsopts.TextStyleOpts(color#ddd),),legend_optsopts.LegendOpts(is_showFalse),))return map_chart之后创建一个时间轮播图用于展示不同年份下中国各省份的GDP排名情况。首先创建一个包含2010年到2022年的年份列表。然后创建一个时间轴对象并设置其初始化选项包括宽度、高度和主题。接下来通过循环遍历每个年份在每个年份下调用get_map()函数获取该年份的地图图表对象并将其添加到时间轴中同时指定对应的时间节点。在时间轴的配置项中设置了时间轴的类型为垂直方向使时间节点按垂直排列。还设置了自动播放和反向放置使时间轴可以自动播放并按照时间倒序展示。通过设置播放速度可以控制时间轴切换时间的间隔。此外还设置了时间轴的位置和宽度以及轴标签的样式。 time_list list(range(2010, 2023)) timeline Timeline(init_optsopts.InitOpts(width1000px, height800px, themeThemeType.DARK))# 开始编制时间轮播图 for y in time_list:m get_map(y)timeline.add(m, time_pointstr(y))# 时间轮播图配置项设置 timeline.add_schema(orientvertical, # 时间轴的类型:垂直is_auto_playTrue, # 是否自动播放is_inverseTrue, # 是否反向放置 timeline反向则首位颠倒过来play_interval1000, # 表示播放的速度跳动的间隔单位毫秒mspos_leftnull,pos_right5,pos_top20,pos_bottom20,width50, # 时间轴区域的宽度, 影响垂直的时候时间轴的轴标签和轴之间的距离label_optsopts.LabelOpts(is_showTrue, color#fff), # 时间轴的轴标签配置 )可视化效果展示 4.1.8. 全国各省GDP排名变化动态条形图 与上面的类似创建一个时间轮播图用于展示不同年份下中国各省份的条形图的数据。首先定义了一个名为get_bar的函数用于生成某一年份的柱状图。在get_bar函数中根据指定的年份从数据集datas中获取相应的数据并对数据进行排序和筛选选取排名前32的数据作为展示数据。然后将数据拆分为横轴数据bar_x_data和纵轴数据bar_y_data。接下来创建一个柱状图对象并设置其初始化选项包括宽度、高度和主题。通过.add_xaxis()和.add_yaxis()方法设置横轴和纵轴的数据以及柱状图的系列名称。使用.reversal_axis()方法使柱状图横纵轴交换从而实现条形图的效果。同时通过.set_global_opts()方法设置柱状图的全局选项包括视觉映射选项、图例选项和纵轴选项其中纵轴标签被隐藏。之后创建一个时间轴对象并设置其初始化选项。通过循环遍历每个年份在每个年份下调用get_bar()函数获取该年份的柱状图对象并将其添加到时间轴中同时指定对应的时间节点。最后通过调用render_notebook()方法在Jupyter Notebook中渲染并显示时间轮播图。 4.1.8. 全国各省GDP占比动态玫瑰图 我们创建一个交互式的时间轮播图以展示不同年份下中国各省份的饼图数据变化。首先定义了一个名为get_pie的函数接受一个整数参数year表示年份。该函数根据指定的年份从数据集datas中获取相应年份的数据。获取的数据通过排序和筛选只保留排名前32的数据以便在饼图中进行展示。 数据处理完成后将其转换为饼图所需的格式即一个包含标签和数值的二维列表。接下来创建一个饼图对象pie并设置其初始化选项。在本例中饼图采用的是玫瑰图rosetypearea的样式。选项包括主题和背景颜色。使用.add()方法向饼图对象添加数据系列。在本例中系列名称为空数据系列使用之前处理得到的饼图数据设置了饼图的半径范围和中心坐标以及每个扇区的样式边框宽度和颜色。通过set_global_opts()方法设置饼图的全局选项包括提示框选项显示鼠标悬停时的信息和图例选项隐藏图例。 最后创建一个时间轴对象并设置其初始化选项包括宽度、高度和主题。使用循环遍历每个年份从起始年份到结束年份依次处理每个年份。在每个年份循环中调用get_pie()函数获取该年份的饼图对象并将其添加到时间轴对象中。同时为该年份指定一个时间节点使用time_point参数将年份转换为字符串形式。完成所有年份的处理后通过调用add_schema()方法设置时间轴的配置项包括时间轴的方向垂直、是否自动播放、是否反向放置、播放速度、位置和宽度以及轴标签的显示设置。 4.1.9. 中国人口与GDP世界占比水球图 首先创建第一个水球图l1通过链式调用方法来设置图表的属性。使用Liquid()创建液态图然后使用.add()方法添加数据和设置图表的位置。数据为[0.17]表示中国的GDP占全球的比例为17%。center参数用于设置图表的中心位置为网格的左侧。label_opts设置标签的属性包括字体大小、格式化函数等。在这里使用了JsCode来定义一个匿名JavaScript函数用于自定义标签的格式化方式将数值转换为百分比格式。position参数设置标签的位置为图表内部。 通过.set_global_opts()方法设置图表的全局配置包括标题和图例。标题使用opts.TitleOpts进行配置设置标题为“中国GDP世界占比”并通过pos_right和pos_bottom参数调整标题的位置。legend_opts用于设置图例的属性这里将图例隐藏否则在图片上会出现一个小方块十分不美观。 l1 (Liquid().add(中国GDP世界占比, [0.17],center[25%, 50%] ,label_optsopts.LabelOpts(font_size50,formatterJsCode(function (param) {return (Math.floor(param.value * 10000) / 100) %;}),positioninside,),).set_global_opts(title_optsopts.TitleOpts(title中国GDP世界占比,pos_right65%,pos_bottom 15%),legend_optsopts.LegendOpts(is_showFalse),) )类似地创建第二个水球图l2同样使用链式调用方法设置图表属性。添加数据和设置图表的位置与l1类似这里表示中国的人口占全球的比例为21%。通过label_opts设置标签的属性包括字体大小、格式化函数和位置。 之后创建一个网格图表g1使用Grid()方法并设置初始配置。通过opts.InitOpts设置图表的宽度、高度、主题和背景颜色。 g1 Grid(init_optsopts.InitOpts(width1000px, height400px,themedark,bg_color#000,chart_id grid) )使用g1.add()方法将l1和l2添加到g1的网格中。通过grid_opts参数设置网格的配置项这里使用了默认配置。 g1.add(l1, grid_optsopts.GridOpts()) g1.add(l2, grid_optsopts.GridOpts())可视化效果展示 4.1.10. 流入广东人口分布图 根据第七次人口普查的结果广东是人口流入最多的省份原因可以归结为多个方面。首先广东作为中国经济最发达的省份之一拥有广阔的经济市场和丰富的就业机会特别是在制造业、出口贸易和服务业等领域的快速发展吸引了大量外来务工人员和就业者前往广东谋求就业机会。其次广东地理位置优越、交通发达拥有众多港口和机场便于人口流动和货物流通使其成为一个重要的交通枢纽和物流中心吸引了人口大量涌入。此外广东作为中国改革开放的先行地区之一享受政策支持和开放的经济环境政府鼓励外来人口到广东创业、就业和投资提供了优惠政策和便利措施进一步吸引了人口流入。另外广东城市化进程和基础设施建设取得显著成就提供了更多的居住、工作和生活条件教育和医疗资源也十分丰富这些因素也是吸引人口流入的重要因素。我们可以绘制流入广东人口分布图以展示广东流入人口的来源地。 首先创建地理图Geo实例并设置初始化选项包括图表的宽度、高度、主题和背景颜色 Geo(init_optsopts.InitOpts(width1000px, height800px, themedark,bg_color#000)) 添加地图的基本设置包括地图类型为中国地图china地图区块的颜色#323c48和边界颜色white以及标签的显示设置 add_schema(maptypechina,itemstyle_optsopts.ItemStyleOpts(color#323c48, border_colorwhite),label_optsopts.LabelOpts(is_showTrue))添加散点图EFFECT_SCATTER的系列数据使用迁入广东的来源地from和人口数量count数据并设置点的颜色为白色 add(,sdate[[from, count]].values.tolist(),type_ChartType.EFFECT_SCATTER,colorwhite,) 添加线图LINES的系列数据使用从DataFrame中选取的迁入广东的来源地from和目的地to数据并设置线的样式为箭头大小为6颜色为红色轨迹线的弯曲度为0.2 add(,sdate[[from, to]].values.tolist(),type_ChartType.LINES,effect_optsopts.EffectOpts(symbolSymbolType.ARROW, symbol_size6, colorred),linestyle_optsopts.LineStyleOpts(curve0.2), # 轨迹线弯曲度)设置全局配置项包括颜色映射范围的可视化映射visualmap_opts标题设置title_opts和图例设置legend_opts set_global_opts(visualmap_optsopts.VisualMapOpts(is_piecewiseTrue,pieces[{min: 0, max: 1000, label: 0-1000, color: white},{min: 1001, max: 5000, label: 1001-5000, color: cyan},{min: 5001, max: 10000, label: 5001-10000, color: green},{min: 10001, max: 50000, label: 10001-50000, color: yellow},{min: 50001, max: 100000, label: 50001-100000, color: blue},{min: 100001, max: 500000, label: 100001-5000000, color: blue}]),title_optsopts.TitleOpts(title流入广东人口分布,subtitle数据来自全国第七次人口普查数据未包含港澳台地区。,pos_left5%,pos_top1%,title_textstyle_optsopts.TextStyleOpts(color#00BFFF, font_size20)),legend_optsopts.LegendOpts(is_showFalse)) 可视化效果展示 4.2. 查询功能实现 如下图所示static文件夹中存放要调用的echarts.jstemplates中存放前端展示的网页模板query.htmlgetdata.py为获取并处理各省GDP数据的Python代码query.py为调用Flask框架的主要Python代码。 以下代码是一个使用Flask框架创建的简单Web应用。它包含一个路由/query/支持GET和POST请求方法。当用户通过浏览器访问/query/时如果是GET请求将会使用默认的查询参数河南省调用get_data函数获取数据并将数据传递给模板文件query.html进行渲染最终返回渲染后的HTML页面作为响应。当用户通过表单提交POST请求时将获取表单中的name字段值作为查询参数传递给get_data函数获取数据并将数据传递给模板文件query1.html进行渲染最终返回渲染后的HTML页面作为响应。其中get_data函数用于处理查询参数并返回相应的数据字典。render_template函数用于将模板文件和数据进行渲染生成最终的HTML页面。通过执行app.run(debugTrue)启动应用以便在调试模式下运行应用并提供调试信息。  from flask import Flask, request, render_template from getdata import get_dataapp Flask(__name__)app.route(/query/, methods[GET, POST]) def query():if request.method POST:code request.form.get(name)dict_return get_data(code)return render_template(query.html, dict_returndict_return)else:dict_return get_data(河南省)return render_template(query1.html, dict_returndict_return)if __name__ __main__:app.run(debugTrue)查询功能展示输入省份全称显示该省份GDP随年份变化情况 5.可视化产品展示 本产品的使用方式较为简单首先在有query.py文件的目录中按住键盘上的Shift键后右击选择“在此处打开Powershell窗口”在弹出的蓝色命令窗口中 输入python query.py运行结果如下图所示 打开网页浏览器输入http://127.0.0.1:5000/query/然后在输入框输入一个省份全称例如“湖北省”点击“点击查询”按钮可以得到该省市、自治区2010到2022年的GDP变化情况。 6.心得体会 在本次数据可视化课程设计中我使用Python和Echarts制作了中国各省经济发展与人口变化的可视化大屏。对于数据处理我首先收集了中国各省的经济发展和人口数据并使用pandas库进行了一些数据清洗和转换以便能够与Echarts库兼容。接下来我开始使用Echarts库来创建可视化大屏。Echarts是一个基于JavaScript的可视化库提供了丰富的图表类型和交互功能。我使用了Echarts的地图功能来绘制中国地图并使用不同的颜色和大小来表示各省的经济发展水平和人口变化情况。我还添加了一些交互式的元素比如鼠标悬停提示和点击事件使用户能够更好地与图表进行互动和探索。此外我对Web应用的前后端交互也有了一定的了解并对Flask框架进行了初步学习与使用。 在整个过程中我发现了一些关键的注意事项。首先数据的准备和清洗非常重要。确保数据的准确性和完整性是创建可视化大屏的基础。其次选择合适的图表类型和颜色方案可以更好地传达信息。不同的图表类型适用于不同的数据类型和分析目的。最后优化用户体验是一个持续的过程。通过添加交互功能和优化界面设计可以提高用户对数据的理解和探索的便利性。 参考文献 [1] 王大伟. ECharts数据可视化[M].北京机械工业出版社2020. [2] [EB/OL]. Apache ECharts [3] [EB/OL]. ECharts实现数据可视化入门教程超详细_echarts数据可视化_牛哄哄的柯南的博客-CSDN博客 [4] [EB/OL]. Python之pyecharts使用_python pyecharts_IM_chaochao的博客-CSDN博客 [5] [EB/OL]. pyecharts - A Python Echarts Plotting Library built with love. [6] [EB/OL]. 全文3000字Pyecharts制作可视化大屏全流程! (附代码分享)_欣一2002的博客-CSDN博客 需要源代码和数据集可私信
http://www.zqtcl.cn/news/905393/

相关文章:

  • 关于服饰搭配做的比较好的网站网站后台管理默认密码
  • 用自己电脑配置服务器做网站响应式框架
  • 任经理++徐州网站建设湖南正规关键词优化
  • 哪些软件可以做网站设计农村网站建设茂名
  • 平顶山网站建设费用腾讯云轻量应用服务器
  • 外贸优秀网站廊坊seo建站
  • 站长工具seo综合查询5g网站建设整改落实情况
  • 网站建设方案 流程wordpress客户案例
  • 网站被收录的过程如何创造属于自己的软件
  • 做神马网站优化快速排国外乡村建设网站
  • 东莞网站优化服务公司天河做网站开发
  • ui在线设计网站滁州 来安县建设局网站
  • 做印尼购物网站如何发货wordpress怎么换中文
  • 深圳方维网站建设公司企业网站推广方式和策略
  • 沙洋县住房和城乡建设局网站单页网站下载
  • 江宁区住房建设局网站建设工程扣分查询网站
  • wordpress火车采集优化算法分类
  • 厦门做网站公司有哪些有什么好的加盟店项目
  • wap网站开发技术怎么做消费信贷网站
  • 公司网站开发外包公司深圳网站建设sz886
  • 中英文网站建设需要懂英语吗电气网站设计
  • 双语网站用什么程序做新网站如何被网站收录
  • 怎么做视频平台网站想开个小说网站怎么做
  • 网站安全监测预警平台建设成效阐述网络营销策略的内容
  • 网站上的qq如何做悬浮沧州做网站的公司
  • 电子商务网站系统规划报告移动商城 网站建设方法方式
  • 网站建设架构选型引擎seo优
  • 什么电脑做网站前段用网站建设工作人员有哪些职责
  • 网站建设技巧网站建设 总结
  • 有站点网络营销平台搜一下百度