【基础折线图】学习使用flask、echarts搭建数据可视化图表网页

news2024/12/24 9:31:33

文章目录

  • 前言
  • Apache Echarts
    • NPM 安装 ECharts
    • 在线定制 ECharts
    • 使用 Echarts
  • Flask
    • pip安装flask
  • 学习案例
    • 案例目录
    • html代码
    • flask代码
  • 源码地址

前言

本文中的所有代码,全部都有详细注释,有需要的同学可以在文末领取!

数据可视化是数据分析必不可少的环节,我曾经熟练掌握Excel、QuickBI、DataV等数据可视化工具。可是在这越来越卷的环境下,我,一名高级数据分析师,只掌握这些是远远不够的。

于是乎,我发现了这个——Apache Echarts。

这个工具可以干啥?

  • 一个可以让你无限装X的工具,用他制作的图表,不仅能看,而且好看,更重要的是特别好看。

  • 用这个工具就可以自己搭建一个数据可视化网站,后端用flask,前端就用echarts绘制图表。

本文包含一个简单的学习案例,效果如下:

在这里插入图片描述

项目运行后,用浏览器访问本地的:http://127.0.0.1:12345 就可以看到这个基础折线图。

数据可视化的重要性

在当今数字化时代,数据可视化已成为一种必不可少的工具。它可以帮助我们更好地理解数据,从而做出更明智的决策。以下是数据可视化的一些重要性:

  • 帮助我们更好地理解数据

通过将数据可视化,我们可以更轻松地理解数据。图表和图形可以帮助我们发现数据中的模式、趋势和异常值,从而更好地理解数据。

  • 帮助我们做出更好的决策

通过可视化数据,我们可以更好地了解数据中的信息,从而做出更好的决策。例如,如果我们正在分析销售数据,我们可以使用可视化工具来查看哪些产品最畅销,哪些产品需要进一步推销。

  • 帮助我们与他人分享数据

通过将数据可视化,我们可以更好地与他人分享数据。图表和图形可以帮助我们向他人传达数据中的信息,使他们更容易理解数据。

Apache Echarts

官网地址:https://echarts.apache.org/zh/index.html

Apache Echarts 的优点:

  • 官网提供超过200款图表案例
  • 基于 JavaScript 的开源可视化图表库
  • 提供详细的API文档方便查找图表配置

官网示例如下:

在这里插入图片描述

常见图表的作用:

  • 散点图

散点图用于显示两个数值变量之间的关系。每个数据点表示一个观察值,其x轴和y轴坐标分别表示两个变量的值。

  • 条形图

条形图用于显示类别变量和数值变量之间的关系。每个条形表示一个类别,其高度表示数值变量的值。

  • 折线图

折线图用于显示数值变量随时间变化的趋势。每个数据点表示一个时间点的值。

  • 饼图

饼图用于显示类别变量之间的比例关系。每个扇形表示一个类别,其大小表示该类别所占的比例。

NPM 安装 ECharts

你可以使用如下命令通过 npm 安装 ECharts

npm install echarts

在线定制 ECharts

在线下载js文件:https://echarts.apache.org/zh/builder.html

可以自定义选择版本、图表、组件、坐标系、是否兼容IE8等选项,打包下载echarts.min.js文件。

使用 Echarts

新建一个html文件,在head标签中引入下载好的 echarts.min.js 文件即可。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <!-- 引入刚刚下载的 ECharts 文件 -->
    <script src="echarts.min.js"></script>
  </head>
</html>

Flask

flask是一个小而全的后端框架,很适合像我这样的新手玩家入坑。

flask官网地址:https://dormousehole.readthedocs.io/en/latest/

在这里插入图片描述

pip安装flask

pip install Flask

学习案例

后端使用flaks,前端使用html搭建的项目

案例目录

在这里插入图片描述

  • static:存放的是一些js文件,css文件等
  • templates:存放的是html网页
  • hello.py:是用flask写的后端服务

html代码

html中主要内容有:

  • 导入下载的 echarts.min.js
  • 基于准备好的dom,初始化echarts实例
  • 指定图表的配置项和数据
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>flask+echarts项目</title>
	<!-- 导入下载的 echarts.min.js -->
    <script src="../static/js/echarts.min.js"></script>
</head>
<body>
<div id="main" style="width:600px;height:400px;"></div>

<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart=echarts.init(document.getElementById('main'));

// 自定义图表的宽高
// var myChart=echarts.init(document.getElementById('main'),null,{width:500,height:400});

// 跟随浏览器的宽度自适应图表大小
// var myChart=echarts.init(document.getElementById('main'));
// window.addEventListener('resize',function(){myChart.resize();});

// 指定图表的配置项和数据
var option={
	// 图表标题配置
	title:{
		text:'基础折线图'
	},
	// 提示框组件
	tooltip:{
		// 是否显示提示框
		show:true,
		// 触发类型,axis 移动到坐标轴就触发
		trigger:'axis'
	},
	// 图例配置项
	legend:{
		// 图例的数据数组,
		data:["销量"],
	},
	// X 轴配置项
	xAxis:{
		// 坐标轴类型,category 类目轴、value数值轴、time时间轴、log对数轴
		type:'category',
		// 坐标轴名称,可以对每一个名称进行单独配置,比如:Mon 显示为红色
		data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
	},
	// y 轴配置项
	yAxis:{
		// 坐标轴类型,category 类目轴、value数值轴、time时间轴、log对数轴
		type:'value',
	},
	// 系列配置,根据不同图表有不同的配置
	series:[
		{
			// 系列名称,用于tooltip显示,legend图例筛选
			name:'销量',
			// 图表类型
			type:'line',
			// 数据内容
			data:[150, 230, 224, 218, 135, 147, 260],
			// 是否平滑曲线显示
			smooth: true
		}
	]
};
//使用刚指定的配置项和数据显示图像
myChart.setOption(option);
</script>
</body>
</html>

flask代码

hello.py中主要内容有:

  • 新建一个根路由,显示hello.html页面内容
  • 绑定本地端口 12345
from flask import Flask, render_template
from flask_cors import *


app = Flask(__name__)
CORS(app, supports_credentials=True)


@app.route("/")
def hello():
    # 新建一个根路由,显示hello.html页面内容
    return render_template('hello.html')


if __name__ == '__main__':
    # 绑定本地端口 12345
    app.run(debug=True, port=12345)

运行结果如下:

在这里插入图片描述

源码地址

链接:https://pan.baidu.com/s/1S1MbBblUW9qHOniuGKnnPw?pwd=2b4j
提取码:2b4j

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/560253.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

19-01 技术选型的道与术

系列目录导航&#x1f449; 什么是技术选型&#xff0c;技术选型的重要性 根据实际业务管理的需要&#xff0c;对硬件、软件以及所要用到的技术进行规格的选择狭义上的技术选型&#xff1a;团队决定选用哪种技术去解决问题&#xff0c;比如选用某个技术语言、某个技术框架去开…

Android12之模板类单例模式实现原理(一百五十二)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

openGauss 年度大型开发者会议来袭,快来看看都有哪些SIG组参加!

openGauss Developer Day 2023 将于5月26日在北京举办。作为大会的重要环节&#xff0c; SIG组版本规划工作会议 将汇聚社区各个SIG 组的用户与开发者&#xff0c;与大家见面&#xff0c;共同讨论开源数据库的技术发展与创新。属于开发者的狂欢日&#xff0c;期待大家的到…

CMAKE命令详解

目录 CMake 语法 案例&#xff1a; 面试中给可能会问的问题和回答&#xff1a; 总结&#xff1a; CMake 是一个用于构建和管理跨平台软件项目的开源工具。它使用名为 CMakeLists.txt 的文本文件来描述项目的构建过程。 CMake 语法 当使用 CMake 构建项目时&#xff0c;可以…

数据库索引结构(1)概念

常见的索引 主键和二级索引 MySQL学习笔记-主键索引和二级索引_mysql中主键索引和二级索引的区别_爱因诗贤的博客-CSDN博客 MYSQL-主键索引与二级索引_mysql二级索引存在哪个文件_青苔小榭的博客-CSDN博客 采用主键索引的好处&#xff1a;如果元素的位置发生修改&#xff0c;那…

华为OD机试真题 Java 实现【组合出合法最小数】【2023Q1 200分】

一、题目描述 给一个数组&#xff0c;数组里面都是代表非负整数的字符串&#xff0c;将数组里所有的数值排列组合拼接起来组成一个数字&#xff0c;输出拼接成的最小的数字。 二、输入描述 一个数组&#xff0c;数组不为空&#xff0c;数组里面都是代表非负整数的字符串&…

解读智慧城市建设的关键角色:GIS技术的应用与优势

近年来&#xff0c;随着城市化进程的加快和信息技术的迅猛发展&#xff0c;智慧城市成为了城市发展的重要方向。而在智慧城市建设中&#xff0c;地理信息系统&#xff08;GIS&#xff09;技术的应用正发挥着越来越重要的作用。GIS技术以其独特的地理空间分析能力&#xff0c;为…

龙芯2K1000实战开发-项目整体框架介绍

文章目录 概要整体架构技术名词解释技术细节小结概要 本项目主要以龙芯2k1000为CPU实现整个系统的管理,主要实现数据交换、时间同步和数据监控等功能。项目中龙芯作为一部分存在,考虑到项目涉密的原因,不能将整个项目的应用背景及项目整体方案做介绍,只能将龙芯过程开发做一…

NSSCTF之Web篇刷题记录(12)

NSSCTF之Web篇刷题记录[12] [NCTF 2018]签到题&#xff1a;[鹤城杯 2021]EasyP&#xff1a;[NSSCTF 2022 Spring Recruit]ezgame:[GXYCTF 2019]Ping Ping Ping&#xff1a;[SWPUCTF 2021 新生赛]finalrce&#xff1a;[NISACTF 2022]checkin&#xff1a; NSSCTF平台&#xff1a;…

程序员成长之路有哪些绝对不能踩的坑?

文章目录 一、你在编写代码时&#xff0c;会特别注意哪些流程&#xff1f;二、你在工作过程中踩过哪些坑&#xff1f;你是如何处理的呢&#xff1f;三、结合自身工作经验&#xff0c;分享一下程序员有哪些要避免的坑吧。总结 程序员编写高质量、可维护、安全且高效的代码&#…

【Python文本处理】基于运动路线记录GPX文件解析,心率、速度、时间、功率、踏频、海拔等参数的生成和更改

【Python文本处理】基于运动路线记录GPX文件解析&#xff0c;心率、速度、时间、功率、踏频、海拔等参数的生成和更改 GPX文件本身其实就是坐标、海拔、时间、心率等综合性的xml文件 如图&#xff1a; 海拔&#xff1a;ele 时间&#xff1a;time 心率&#xff1a;heartrate 功…

推荐5个非常强大的ChatGPT浏览器插件|你的生产力提高工具

近期&#xff0c;ChatGPT变得越来越热门&#xff0c;为此&#xff0c;许多浏览器插件也随之问世。这些基于ChatGPT的浏览器插件大大提高了ChatGPT的能力&#xff0c;使得我们能够更高效地在平时的上网、工作和学习中获得帮助&#xff0c;从而节省了大量时间。 今天我来给大家介…

168天,从外包转岗到阿里测开岗.....

本人毕业于某普通二本院校非计算机专业&#xff0c;跨专业入行测试&#xff0c;至今有近 5年工作经验。 第一份测试工作是在腾讯做了两年外包。总体感受就是 这份工作缺乏归属感&#xff0c;心里总有一种落差&#xff0c;进步空间不大&#xff0c; 接触不到核心技术&#xf…

分享以MM32SPIN0280单片机为主控洗衣机方案

洗衣机是利用电能产生机械作用来洗涤衣物的清洁电器&#xff0c;按驱动方法有3类&#xff0c;直接驱动&#xff0c;皮带驱动&#xff0c;波轮式驱动。 主变一体洗衣机方案以MM32SPIN0280为主控 MCU规格&#xff1a; -ArmCortex-M0内核&#xff0c;最高工作频率可达96MHz -128…

软件测试面试至今0 offer的小伙伴,问题到底出在哪儿?

转眼已是五月中旬&#xff0c;求职招聘季也快要结束啦&#xff0c;如果没点真技术 真本事&#xff0c;不了解点职场套路&#xff0c;在今年行情下&#xff0c;找工作可是难上加难。 现在点开微博或者脉脉&#xff0c;只要搜索“招聘”&#xff0c;用“惨不忍睹”来形容也不为过…

《计算机组成原理》期末复习一文总结

文章目录 第1讲&#xff1a;概论一、课程内容课程简介课程教材慕课堂二、课程组成结构计算机系统组成计算机软硬件概念以运算器为中心现代计算机的存储器为中心 硬件各部分关系内存基本组成运算器基本组成累加器&#xff08;相当于寄存器&#xff09; 控制器组成 第2讲&#xf…

[VRTK4.0]设置OpenXRCameraRig

学习目标&#xff1a; 演示如何设置Unity项目以支持OpenXR&#xff0c;以及如何安装VRTK v4TiliaUnitvXRFrameWork用于OpenXR的CameraRig。还展示了如何设置Tilia TrackedAlias预制件可轻松访问底层CameraRig功能。 流程&#xff1a; 步骤一&#xff1a; 我们现在要将我…

【数项级数】敛散性判别

阅读本篇之前&#xff0c;建议可以先看一下上一篇文章哦&#xff01; 【数项级数】无穷个数相加一定是个数吗&#xff1f; 柯西收敛准则判断级数敛散性 基本思想利用柯西收敛准则判断级数是否收敛推论&#xff1a;定理 基本思想 在上一篇文章中&#xff0c;初识数项级数&#…

如果要走网络安全这方面,需要考哪些证呢?

网络工程师VS网络安全工程师&#xff0c;哪个能带你走上人生巅峰&#xff1f; 众所周知&#xff0c;网络安全是以技术为核心的行业&#xff0c;年薪的多少是和技术挂钩的&#xff0c;但是很多没有工作经验的或者想转行到网安的大学生想要找到一份好工作&#xff0c;一个含金量…

Unity 灯光组件Light

灯光简介 在 Hierarchy 窗口右键&#xff0c;选择 Light&#xff0c;再选择具体的灯光类型&#xff0c;在 Inspector 窗口查看灯光组件如下&#xff1a; Type&#xff1a;灯光类型&#xff0c;主要有&#xff1a;Directional&#xff08;平行光&#xff09;、Spot&#xff08;聚…