首页 > 数据库 >(3-5)绘制散点图和折线图:Flask+pygal+SQLite实现数据分析

(3-5)绘制散点图和折线图:Flask+pygal+SQLite实现数据分析

时间:2024-09-03 15:50:05浏览次数:9  
标签:__ SQLite cnt Flask self db 散点图 month year

3.5  Flask+pygal+SQLite实现数据分析

在本节的内容中,将使用Flask+pygal+SQLite3实现数据分析功能。将需要分析的数据保存在SQLite3数据库中,然后在Flask Web网页中使用库pygal绘制出对应的统计图。

3.5.1  创建数据库

首先使用PyCharm创建一个Flask Web项目,然后通过文件models.py设计SQLite数据库的结构,主要实现代码如下所示。

from dbconnect import db

# 许可证申请数量
class Appinfo(db.Model):
    __tablename__ = 'appinfo'
    # 注意这句,网上有些实例上并没有
    # 必须设置主键
    id = db.Column(db.Integer, primary_key=True)
    year = db.Column(db.String(20))
    month = db.Column(db.String(20))
    cnt = db.Column(db.String(20))

    def __init__(self, year, month, cnt):
        self.year = year
        self.month = month
        self.cnt = cnt

    def __str__(self):
        return self.year + ":" + self.month + ":" + self.cnt

    def __repr__(self):
        return self.year + ":" + self.month + ":" + self.cnt

    def save(self):
        db.session.add(self)
        db.session.commit()

在数据库表appinfo中添加数据,如图3-39所示。

图3-39  数据库dzj.db中的数据

3.5.2  绘制统计图

编写Flask Web启动文件pygal_test.py,首先建立URL路径导航指向模板文件index.htm,然后提取数据库中的数据,并使用pygal绘制出统计图表。文件pygal_test.py的主要实现代码如下所示。

app = Flask(__name__)
dbpath = app.root_path
# 注意斜线的方向
app.config['SQLALCHEMY_DATABASE_URI'] = r'sqlite:///' + dbpath + '/dzj.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
print(app.config['SQLALCHEMY_DATABASE_URI'])

db.init_app(app)

@app.route('/')
def APPLYTBLINFO():
    db.create_all()
    # 在第一次调用时执行就可以
    appinfos = Appinfo.query.all()
    # 选择年份
    list_year = []
    # 选择月份
    list_month = []
    # 月份对应的数字
    map_cnt = {}
    for info in appinfos:
        if info.year not in list_year:
            list_year.append(info.year)
            map_cnt[info.year] = [int(info.cnt)]
        else:
            map_cnt[info.year].append(int(info.cnt))
        if info.month not in list_month:
            list_month.append(info.month)
    line_chart = pygal.Line()
    line_chart.title = '信息'
    line_chart.x_labels = map(str, list_month)
    for year in list_year:
        line_chart.add(str(year) + "年", map_cnt[year])
    return render_template('index.html', chart=line_chart)


if __name__ == '__main__':
    app.run(debug=True)

模板文件index.htm的具体实现代码如下所示。

<body style="width: 1000px;margin: auto">
<div  id="container">
    <div id="header" style="background: burlywood;height: 50px;">
        <h2 style="font-size: 30px;  position: absolute; margin-top: 10px;margin-left: 300px;
        text-align:center;">数据走势图分析</h2>
    </div>
    <div id="leftbar" style="width: 200px;height: 600px;background: cadetblue;float: left">
        <h2 style="margin-left: 20px">数据图总览</h2><br/>
        <table>
            <tr>
                <td>
                   <a name="appinfo"  style="margin-left: 20px;">数量分析图</a><br>
                </td>
            </tr>
        </table>
    </div>
    <div id="chart" style="width: 800px;float: left">
       <embed type="image/svg+xml" src= {{ chart.render_data_uri()|safe }} />
    </div>
</div>
</body>

执行Flask Web项目,在浏览器中输入http://127.0.0.1:5000/后会显示绘制的统计图,执行效果如图3-40所示。

图3-40  绘制的统计图

标签:__,SQLite,cnt,Flask,self,db,散点图,month,year
From: https://blog.csdn.net/asd343442/article/details/141864126

相关文章

  • 基于python+flask框架的企业员工献血管理平台(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着企业社会责任意识的增强和公众对健康公益事业的日益关注,企业员工献血已成为企业履行社会责任、展现人文关怀的重要方式之一。然而,传统......
  • 基于python+flask框架的绿洲便利店商品售卖系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着现代都市生活节奏的加快,消费者对便捷购物服务的需求日益增长。便利店作为零售业态的重要组成部分,以其商品种类丰富、位置便利、服务快......
  • 基于python+flask框架的图书管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和数字化时代的到来,图书馆作为知识传播与存储的重要机构,其管理方式正经历着深刻的变革。传统的图书管理模式依赖人......
  • 从零开始:用Flask和UIAutomation构建RPA微信自动群发工具
    文章目录前言一、环境搭建系统要求flask安装uiautomation安装二、群发功能的实现要导入的包1.构建WxOperation类2.搜寻被发送人3.发送文本4.发送文件5.接收消息三、构建后端服务要导入的包文件框架1.index.html文件2.app.py四、成果展示总结前言在这个数字化......
  • 【有源码】基于爬虫+python的美食数据分析与可视化flask热门美食推荐系统的设计与实现
    注意:该项目只展示部分功能,如需了解,文末咨询即可。本文目录1.开发环境2系统设计2.1设计背景2.2设计内容3系统展示3.1功能展示视频3.2系统页面4更多推荐5部分功能代码1.开发环境开发语言:Python采用技术:flask、爬虫数据库:MySQL开发环境:PyCharm2系统......
  • 科研绘图系列:python语言散点图和密度分布图(scatter & density plot)
    介绍散点图(ScatterPlot)是一种数据可视化技术,用于显示两个变量之间的关系。它通过在直角坐标系中绘制数据点来展示数据的分布和趋势。每个数据点在横轴(X轴)和纵轴(Y轴)上都有一个坐标值,分别对应两个变量的数值。密度分布图是一种统计图表,用于表示数据的分布情况。它通常用于......
  • 科研绘图系列:python语言tSNE散点图(tSNE scatter plot)
    介绍t-SNE(t-distributedStochasticNeighborEmbedding)是一种用于高维数据可视化的非线性降维技术。它由LaurensvanderMaaten和GeoffreyHinton在2008年提出。t-SNE的主要目的是将高维空间中的数据点映射到二维或三维空间中,同时尽可能保持数据点之间的相对距离,使得相......
  • 基于python+flask框架的基于移动端的疫情环境下大学生心理服务平台(开题+程序+论文) 计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着全球疫情的持续蔓延,大学生群体作为社会的重要组成部分,其心理健康问题日益凸显。疫情期间,校园封闭管理、线上学习模式的转变、社交活动......
  • 基于python+flask框架的企业内部通讯系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着企业规模的日益扩大和业务的全球化发展,企业内部沟通的高效性与及时性成为了影响企业运营效率与团队协作的关键因素。传统的沟通方式如......
  • 基于python+flask框架的心理健康管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着现代社会节奏的加快与竞争的日益激烈,心理健康问题已成为不容忽视的社会议题。据统计,全球范围内心理健康问题的患病率逐年上升,对个人生......