Python flask + Mysql +Echarts :实现数据可视化(玫瑰图)

这篇具有很好参考价值的文章主要介绍了Python flask + Mysql +Echarts :实现数据可视化(玫瑰图)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

步骤一:建立Myslq数据库连接

步骤二:开发Flask应用

步骤三:创建前端页面(house_bing.html )

步骤四:运行Flask应用并查看玫瑰图


步骤一:建立Myslq数据库连接

import pymysql

class Mysql(object):
    # 创建 Mysql 类的实例时自动调用
    def __init__(self):
        # 建立MySQL数据库连接
        self.conn = pymysql.connect(host='localhost', user='root', password='123456', database='houses', charset="utf8")
        # 创建了一个游标对象cursor,用于执行SQL命令
        self.cursor = self.conn.cursor()

    # 这个方法使得 Mysql 类的实例可以作为上下文管理器使用
    def __enter__(self):
        return self

    # 负责关闭游标和数据库连接
    def __exit__(self, exc_type, exc_val, exc_tb):
        self.cursor.close()
        self.conn.close()

    # 返回的结果是一个元组列表,每个元组代表house_sum表中的一行数据。
    def house(self):
        sql = "select * from house_sum"
        self.cursor.execute(sql)
        return self.cursor.fetchall()

步骤二:开发Flask应用

from flask import Flask, send_from_directory
from flask import render_template
from mysql import Mysql

app = Flask(__name__)

# 将 getdata 函数绑定到根URL路径('/')。这意味着当用户访问服务器的根地址时,将调用 getdata 函数。
@app.route('/')
# 这个函数是处理根URL路径的视图函数
def getdata():
    # 创建了一个 Mysql 类的实例,用于与MySQL数据库建立连接。
    db = Mysql()
    # 调用 db.house() 方法,执行SQL查询并获取结果。
    item = db.house()
    # 将查询结果转换为字典列表,其中每个字典包含 name 和 value 键,分别对应于数据库表中的列。
    data = [{'name': row[0], 'value': row[1]} for row in item]
    # 使用 render_template 函数渲染 house_bing.html 模板,并将转换后的数据作为参数传递给模板。
    return render_template('house_bing.html', data=data)


if __name__ == '__main__':
    app.run(debug=True)    #debug=True发生错误时会返回发生错误的地方

render_template():调用了”render_template()”方法来渲染模板。方法的第一个参数”echarts.html”指向你想渲染的模板名称,第二个参数”data”是你要传到模板去的变量,变量可以传多个。

步骤三:创建前端页面(house_bing.html )

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数据可视化</title>
    <script src="{{ url_for('static', filename='echarts.min.js') }}"></script>
    <link rel="stylesheet" href="/static/style.css">
</head>
<body>
<div id="main"></div>
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));

         //获取数据 将data变量中的数据插入到HTML中。
         // |safe是一个过滤器,它确保插入的数据被正确地转义,以避免XSS攻击。
         var data = {{ data|safe }};
          //调用data数组的map方法创建一个新数组
         var newData = data.map(function(item) {
              return {
              //正则表达式,将item.name中的所有单引号('),替换为空字符串。这里的/g标志表示全局搜索,即替换所有匹配项,而不仅仅是第一个。
                name: item.name.replace(/'/g, ''),
                value: item.value
              };
         });

        // 指定图表的配置项和数据
        var option = {
            title: {
                text: '统计每个区(总共16区)房屋总数',
                left:'center',
                textStyle: {
                      fontSize: 25
                },
            },
            //当用户将鼠标悬停在图表的数据项上时,工具提示会显示。
            tooltip: {
               "show": true,
                "trigger": "item", //通过图表中的数据项(item)来触发的
            },
            //配置图表工具箱
            toolbox: {
                show: true,
                //定义了工具箱中包含的功能选项
                feature: {
                mark: { show: true },
                dataView: { show: true, readOnly: false }, //定义了数据视图的功能
                restore: { show: true }, //定义了恢复图表默认状态的功能
                saveAsImage: { show: true }  //定义了将图表保存为图片的功能
                }
            },
            //图例
            legend: {
                orient: 'vertical',
                left: 'left',
                top: '10%'
            },
            //图表系列
            series: [{
                type: 'pie',
                radius: ['40%', '65%'], //饼图的半径
                center: ['50%', '50%'],  //饼图的中心位置
                roseType: "radius", //饼图是否展示成南丁格尔玫瑰图
                avoidOversetting: false,  //控制是否避免标签重叠
                //饼图数据项的样式
                itemStyle: {
                    borderRadius: 18,  //数据项的边框半径为18像素
                    borderWidth: 2  //数据项的边框宽度为2像素
                },
                //定义了当数据项被强调时的样式,比如鼠标悬停时的样式。
                emphasis: {
                    itemStyle: {
                        shadowBlur: 10,  //设置阴影的模糊度为10像素
                        shadowOffsetX: 0,  //设置阴影在水平方向上的偏移量为0像素。
                        shadowColor: 'rgba(0, 0, 0, 0.5)'  //设置阴影的颜色为半透明的黑色。
                    },
                    //标签样式
                    label: {
                        show: true,
                        position: 'inside'  //标签位置在数据项内部
                    },
                },
                data:newData,
                "label": {
                    "show": true,
                    "margin": 10,
                    "formatter": "{b} : {c} ({d}%)" //{b}代表标签的名称,{c}代表数值,{d}%代表百分比
                }
            }]
        };
        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
    </script>
</body>
</html>

步骤四:运行Flask应用并查看玫瑰图

运行完,点击 http://127.0.0.1:5000/可以看到html所绘制的玫瑰图

flask+echarts+数据库,信息可视化,python,flask,前端,mysql,echarts

flask+echarts+数据库,信息可视化,python,flask,前端,mysql,echarts文章来源地址https://www.toymoban.com/news/detail-835936.html

到了这里,关于Python flask + Mysql +Echarts :实现数据可视化(玫瑰图)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于python淘宝商品数据爬虫分析可视化系统 网络爬虫+Flask框架+MySQL数据库 大数据 毕业设计

    python语言、Flask框架、淘宝商品数据、selenium网络爬虫、MySQL数据库、数据分析、Echarts可视化大数据毕业设计、爬取 Selenium网络爬虫淘宝商品数据可视化系统是一个基于Python和Selenium的Web爬虫应用程序,可以实现对淘宝上特定商品的价格、销量、评价等数据进行自动化抓

    2024年02月16日
    浏览(50)
  • 基于ECharts+flask的爬虫可视化

    项目效果。  本案例基于python的flask框架,通过爬虫程序将数据存储在csv文件中,在项目运行时会通过render_template映射出对应的页面,并且触发一个函数,该函数会读取csv文件的数据将之交给echarts渲染 ,echarts将之渲染到页面中。 demo.html  movie.py demo.html data.csv data.csv由movie.

    2024年02月11日
    浏览(47)
  • Flask+Echarts搭建全国疫情可视化大屏

    本项目是基于flask+echarts搭建的全国疫情追踪的可视化大屏,主要涉及到的技术有csv处理,flask框架,echarts图表。 最终效果如下: 我们先搭建一个基础的flask应用 接着,需要编写index.html页面和css样式代码(这里我就直接放最终的代码) 我们需要编写获取数据的接口,然后通过

    2024年02月16日
    浏览(42)
  • Flask配合Echarts写一个动态可视化大屏

    ch 后端:flask 可视化:echarts 前端:HTML+JavaScript+css 大屏拆分 案例项目中大屏可按版块进行拆解,会发现这里大屏主要由标题、折线图、柱状图、地图、滚动图和词云等组成,整体可切分为8个版块,如下: 下方为简单演示: HTML 我们整体布局前,先通过简单的案例了解前端布

    2024年02月07日
    浏览(46)
  • springboot+echarts +mysql制作数据可视化大屏(四图)

    作者水平低,如有错误,恳请指正!谢谢!!!!! 项目简单,适合大学生参考 分类专栏还有其它的可视化博客哦! 专栏地址:https://blog.csdn.net/qq_55906442/category_11906804.html?spm=1001.2014.3001.5482 成果展示: 1)可以使用自己的MySQL数据库; 2)使用我提供的数据。(要数据私信

    2024年02月13日
    浏览(40)
  • springboot+echarts+mysql制作数据可视化大屏(滑动大屏)

     作者水平低,如有错误,恳请指正!谢谢!!!!! 项目简单,适合大学生参考 分类专栏还有其它的可视化博客哦! 专栏地址:https://blog.csdn.net/qq_55906442/category_11906804.html?spm=1001.2014.3001.5482 目录  一、数据源 二、所需工具 三、项目框架搭建 四、代码编写 温度堆叠折线图

    2024年02月11日
    浏览(40)
  • springboot+mybatis+echarts +mysql制作数据可视化大屏

    作者水平低,如有错误,恳请指正!谢谢!!!!! 目录 一、数据源 二、所需工具 三、项目框架搭建 3.1新建springboot项目 3.1.1进入官网 3.1.2创建项目 四、后端代码编写 4.1根据需求修改pom.xml 4.2配置数据源 4.3创建目录结构 4.4后端编写代码 4.4.1entity类 4.4.2dao 4.4.3service 4.4.4co

    2024年02月03日
    浏览(41)
  • 构建数据可视化(基于Echarts,python)

    本文目录: 一、写在前面的题外话 二、数据可视化概念 三、用Python matplotlib库绘制数据可视化图 四、基于Echarts构建大数据可视化 4.1、安装echarts.js 4.2、数据可视化折线图制作 4.2.1、基础折线图 4.2.2、改善折线图 4.2.3、平滑折线图 4.2.4、虚线折线图 4.2.5、阶梯折线图 4.2.6、面

    2024年02月11日
    浏览(55)
  • 【数据可视化】基于Python和Echarts的中国经济发展与人口变化可视化大屏

    1.题目要求 本次课程设计要求使用Python和ECharts实现数据可视化大屏。要求每个人的数据集不同,用ECharts制作Dashboard(总共至少4图),要求输入查询项(地点和时间)可查询数据,查询的数据的地理位置展示在地图上;绘制一个带时间轴的动态图,展示不同时间的数据;根据

    2024年02月16日
    浏览(42)
  • php+echarts实现数据可视化实例2

    php css

    2024年02月12日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包