使用Html+echarts+ajax+flask,构建一个前后端分离的数据可视化(基础图形)
前端代码(HTML + Echarts + Ajax):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ECharts 数据可视化</title>
<!-- 引入 ECharts 文件 -->
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.min.js"></script>
</head>
<body>
<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据(这里使用Ajax异步获取数据)
$.ajax({
url: '/get_data', // Flask后端提供的接口地址
type: 'GET',
dataType: 'json',
success: function (data) {
// 使用刚指定的配置项和数据显示图表。
myChart.setOption({
title: {
text: '简单图形示例'
},
tooltip: {},
legend: {
data:['销量']
},
xAxis: {
data: data.categories
},
yAxis: {},
series: [{
name: '销量',
type: 'bar', // 这里以柱状图为例
data: data.values
}]
});
}
});
</script>
</body>
</html>
后端代码(Flask):
from flask import Flask, jsonify
app = Flask(__name__)
# 假设的数据,实际应用中应从数据库或其他数据源获取
example_data = {
'categories': ['Tovala', 'Sunrise', 'Transcosmos', 'Merah Putih', 'Barito', 'Arema'],
'values': [100, 200, 150, 80, 70, 200]
}
@app.route('/get_data')
def get_data():
return jsonify(example_data)
if __name__ == '__main__':
app.run(debug=True)
在这个例子中,前端代码使用Ajax异步请求后端数据,后端提供一个API接口返回数据,前端接收到数据后,使用ECharts渲染图表。这样的架构适合数据量大或者需要频繁更新的场景。
评论已关闭