作者:whglwz | 来源:互联网 | 2022-12-31 11:13
python-flask疫情数据可视化Flask是一个轻量级的web框架,看了https:www.bilibili.comvideoBV177411j7qJ大佬的视频,照着做的一个
python-flask疫情数据可视化
Flask是一个轻量级的web框架,看了 https://www.bilibili.com/video/BV177411j7qJ 大佬的视频,照着做的一个疫情可视化项目,(电脑屏幕小看着有点拥挤。大屏展示还是挺好看的),热搜词云的数据找不到网站了,就弄了个表格;自己修改了一些部分,感兴趣的可以去康康视频,后续有时间再写点总结。
用flask连接数据库进行数据可视化时出错,请大神帮忙看看
she
python可视化神器——pyecharts库
无意中从今日头条中看到的一篇文章,可以生成简单的图表。据说一些大数据开发们也是经常用类似的图表库,毕竟有现成的,改造下就行,谁会去自己造轮子呢。
pyecharts是什么? pyecharts 是一个用于生成 Echarts 图表的类库。
Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒, pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图 。使用pyecharts可以生成独立的网页,也可以在flask、django中集成使用。 安装很简单:pip install pyecharts 如需使用 Jupyter Notebook 来展示图表,只需要调用自身实例即可,同时兼容 Python2 和 Python3 的 Jupyter Notebook 环境。
所有图表均可正常显示,与浏览器一致的交互体验,简直不要太强大。 参考自pyecharts官方文档: http://pyecharts.org 首先开始来绘制你的第一个图表 使用 Jupyter Notebook 来展示图表,只需要调用自身实例即可 add() 主要方法,用于添加图表的数据和设置各种配置项 render() 默认将会在根目录下生成一个 render.html 的文件,文件用浏览器打开。 使用主题 自 0.5.2+ 起,pyecharts 支持更换主体色系 使用 pyecharts-snapshot 插件 如果想直接将图片保存为 png, pdf, gif 格式的文件,可以使用 pyecharts-snapshot。
使用该插件请确保你的系统上已经安装了 Nodejs 环境。 安装 phantomjs $ npm install -g phantomjs-prebuilt 安装 pyecharts-snapshot $ pip install pyecharts-snapshot 调用 render 方法 bar.render(path='snapshot.png') 文件结尾可以为 svg/jpeg/png/pdf/gif。请注意,svg 文件需要你在初始化 bar 的时候设置 renderer='svg'。
图形绘制过程 基本上所有的图表类型都是这样绘制的: chart_name = Type() 初始化具体类型图表。 add() 添加数据及配置项。 render() 生成本地文件(html/svg/jpeg/png/pdf/gif)。
add() 数据一般为两个列表(长度一致)。如果你的数据是字典或者是带元组的字典。可利用 cast() 方法转换。 多次显示图表 从 v0.4.0+ 开始,pyecharts 重构了渲染的内部逻辑,改善效率。
推荐使用以下方式显示多个图表。如果使是 Numpy 或者 Pandas,可以参考这个示例 当然你也可以采用更加酷炫的方式,使用 Jupyter Notebook 来展示图表,matplotlib 有的,pyecharts 也会有的 Note: 从 v0.1.9.2 版本开始,废弃 render_notebook() 方法,现已采用更加 pythonic 的做法。直接调用本身实例就可以了。 比如这样 还有这样 如果使用的是自定义类,直接调用自定义类示例即可 图表配置 图形初始化 通用配置项 xyAxis:平面直角坐标系中的 x、y 轴。
(Line、Bar、Scatter、EffectScatter、Kline) dataZoom:dataZoom 组件 用于区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。(Line、Bar、Scatter、EffectScatter、Kline、Boxplot) legend:图例组件。图例组件展现了不同系列的标记(symbol),颜色和名字。可以通过点击图例控制哪些系列不显示。
label:图形上的文本标签,可用于说明图形的一些数据信息,比如值,名称等。 lineStyle:带线图形的线的风格选项(Line、Polar、Radar、Graph、Parallel) grid3D:3D笛卡尔坐标系组配置项,适用于 3D 图形。(Bar3D, Line3D, Scatter3D) axis3D:3D 笛卡尔坐标系 X,Y,Z 轴配置项,适用于 3D 图形。
(Bar3D, Line3D, Scatter3D) visualMap:是视觉映射组件,用于进行『视觉编码』,也就是将数据映射到视觉元素(视觉通道) markLine&markPoint:图形标记组件,用于标记指定的特殊数据,有标记线和标记点两种。(Bar、Line、Kline) tooltip:提示框组件,用于移动或点击鼠标时弹出数据内容 toolbox:右侧实用工具箱 图表详细 Bar(柱状图/条形图) Bar3D(3D 柱状图) Boxplot(箱形图) EffectScatter(带有涟漪特效动画的散点图) Funnel(漏斗图) Gauge(仪表盘) Geo(地理坐标系) GeoLines(地理坐标系线图) Graph(关系图) HeatMap(热力图) Kline/Candlestick(K线图) Line(折线/面积图) Line3D(3D 折线图) Liquid(水球图) Map(地图) Parallel(平行坐标系) Pie(饼图) Polar(极坐标系) Radar(雷达图) Sankey(桑基图) Scatter(散点图) Scatter3D(3D 散点图) ThemeRiver(主题河流图) TreeMap(矩形树图) WordCloud(词云图) 用户自定义 Grid 类:并行显示多张图 Overlap 类:结合不同类型图表叠加画在同张图上 Page 类:同一网页按顺序展示多图 Timeline 类:提供时间线轮播多张图 统一风格 注:pyecharts v0.3.2以后,pyecharts 将不再自带地图 js 文件。如用户需要用到地图图表,可自行安装对应的地图文件包。
地图文件被分成了三个 Python 包,分别为: 全球国家地图: echarts-countries-pypkg 中国省级地图: echarts-china-provinces-pypkg 中国市级地图: echarts-china-cities-pypkg 直接使用python的pip安装 但是这里大家一定要注意,安装完地图包以后一定要重启jupyter notebook,不然是无法显示地图的。
python数据可视化--可视化概述
数据可视化是python最常见的应用领域之一,数据可视化是借助图形化的手段将一组数据以图形的形式表达出来,并利用数据分析和开发工具发现其中未知信息的数据处理过程。 在学术界有一句话广为流传,A picture worths thousand words,就是一图值千言。
在课堂上,我经常举的例子就是大家在刷朋友圈的时候如果看到有人转发一篇题目很吸引人的文章时,我们都会点击进去,可能前几段话会很认真地看,文章很长的时候后面就会一目十行,失去阅读的兴趣。
所以将数据、表格和文字等内容用图表的形式表达出来,既能提高读者阅读的兴趣,还能直观表达想要表达的内容。 python可视化库有很多,下面列举几个最常用的介绍一下。 matplotlib 它是python众多数据可视化库的鼻祖,也是最基础的底层数据可视化第三方库,语言风格简单、易懂,特别适合初学者入门学习。 seaborn Seaborn是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。
应该把Seaborn视为matplotlib的补充,而不是替代物。 pyecharts pyecharts是一款将python与echarts结合的强大的数据可视化工具,生成的图表精巧,交互性良好,可轻松集成至 Flask,Sanic,Django 等主流 Web 框架,得到众多开发者的认可。 bokeh bokeh是一个面向web浏览器的交互式可视化库,它提供了多功能图形的优雅、简洁的构造,并在大型数据集或流式数据集上提供高性能的交互性。
python这些可视化库可以便捷、高效地生成丰富多彩的图表,下面列举一些常见的图表。 柱形图 条形图 坡度图 南丁格尔玫瑰图 雷达图 词云图 散点图 等高线图 瀑布图 相关系数图 散点曲线图 直方图 箱形图 核密度估计图 折线图 面积图 日历图 饼图 圆环图 马赛克图 华夫饼图 还有地理空间型等其它图表,就不一一列举了,下节开始我们先学习matplotlib这个最常用的可视化库。
python flask将读取的图片返回给web前端
最近在做毕业设计系统可视化的时候,分析框架选择了Python语言,但需要用前端来展示分析的结果,虽然考虑使用echarts图表来完成,对于简单的图表需要的数据格式简单,但是比如热力图所需的数据得自己去组装,Python后台画图很简单,一两句的事情,但是怎么把画好的图片放到html等前端显示呢,最近网上看了几个例子,但有些例子都没有达到正常显示图片,所以自己动手亲自试了一试。 原理:Python在后台把图片处理为Base64位的格式,再把Base64格式的图片在html用img控件显示。
flask页面中使用jinja2渲染引擎(使用真实值替换变量,再返回最终得到的字符串,这个过程称为“渲染”),在jinja2中,存在三种语法,有点类似springboot中thymeleaf的语法格式: 控制结构 :{% %} 变量取值: {{ }} 注释 :{# #} 启动flask程序后,在网页地址栏输入地址访问。
Flask视图:视图函数,类视图,蓝图使用方法整理
摘要: Flask , 视图 , 视图函数 , 类视图 , 方法视图 , 装饰器 , 蓝图 在Flask中 路由 是指用户请求的 URL 与 视图函数 之间的 映射 ,处理URL和函数之间关系的程序称为路由。Flask根据HTTP请求的URL在路由表中匹配预定义的URL找到对应的视图函数。
将视图函数的执行结果返回给服务器。
Flask中默认使用 @app.route 装饰器将视图函数和URL绑定,装饰器是一种接受函数的函数,返回新的函数。 使用装饰器将视图函数page和url '/'关系绑定带 app.url_map 属性上,打印app.url_map的结果如下,有两条url规则,分别是根目录下的URL规则和static目录下的URL规则 可以给装饰器增加 endpoint 参数给 url命名 ,一旦使用了endpoint参数 url_for 反转就不能使用视图函数名了而要使用定义的url名。 url_for('index')的输出是字符串格式url的内容"/" 也可以不使用装饰器,使用 add_url_rule 将视图函数和url绑定,装饰器 @app.route 实际是调用的 add_url_rule 方法 视图函数也可以结合类来实现,类视图的好处是支持 继承 ,可以将共性的东西放到父类中,类视图需要使用 app.add_url_rule() 来进行注册,类视图分为 标准类视图 和 基于调度方法的类视图 标准类视图有标准的写法 使用类视图,在父类中定义一个属性,在子类中完成各自的业务逻辑,同时都继承父类中的这一个属性 分别定义三个子类的模板 查看结果,三个url的返回除了三个模板各自的内容外都需要输出父类的ads属性 如果同一个视图函数需要根据 不同的请求方式 进行不一样的逻辑处理,需要在视图函数内部进行判断,可以使用 方法类视图 实现,使用类继承 flask.views.MethodView ,定义和请求方式 同名的小写方法 来完成了逻辑处理。 编辑一个页面直接访问是输出用户名密码页面,提交表单后是密码正确与否的提示。
在html中定义 form 标签action属性关联url名 如果不用方法视图实现需要在普通视图内部调用 request.method 判断是否为 GET , POST 进行判断 装饰器的本质是一个Python函数, 接受一个函数 , 返回一个函数 ,目的是让一个函数获得 其他额外的功能 。 假设一个场景访问新闻详情页又一个函数实现,但是之前必须先登录,登录由另一个函数实现,此时需要将访问新闻函数传递给登录函数返回一个新的函数作为整体的逻辑实现,这个给登录函数增加新功能浏览网页的过程就是装饰器。 控制台输出,new_func()执行了新函数,基础函数user_login执行了新加入的功能,新函数真实的函数名还是inner 如果使用装饰器魔法符号实现,此时直接调用被装饰的函数即可实现带有新功能的基础函数,函数作为参数传入的过程已经自动实现 在基础函数和要包装的函数上都支持传递参数 查看 app.route() 的源码内部也是将视图函数包装,在原函数执行之前调用 add_url_rule 绑定url,endpoint和视图函数的关系,再返回原函数实现业务逻辑 蓝图的目的是实现 各个模块的视图函数写在不同的py文件中 ,在主视图中导入分路由视图的模块,并注册蓝图对象, 降低各个功能模块的耦合度 ,使用 flask.Blueprint 定义蓝图, app.register_blueprint 注册蓝图。
实现主页,详情页,对比页三个页面,在主页中导入两个其他功能页,先编写两个功能页的蓝图detail.py和compare.py 使用 app = Blueprint('detail', __name__) 定义蓝图对象, detail 是蓝图名,蓝图名不能重复。