跟着Web开辟的一直进步,数据可视化已成为展示跟分析数据的重要手段。FastAPI,作为一款现代、疾速(高机能)的Web框架,与ECharts(一个利用JavaScript实现的开源可视化库)结合,可能轻松实现静态图表的绘制。本文将具体介绍怎样利用FastAPI跟ECharts创建静态数据可视化利用。
FastAPI是一个用于构建API的现代、疾速(高机能)的Web框架,由Python编写。它存在以下特点:
ECharts是一个利用JavaScript实现的开源可视化库,供给直不雅、交互式、可高度定制化的图表。它存在以下特点:
以下是一个简单的示例,展示怎样利用FastAPI跟ECharts创建一个静态图表。
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import random
app = FastAPI()
# 模仿数据
data = [
{"name": "A", "value": random.randint(1, 100)},
{"name": "B", "value": random.randint(1, 100)},
{"name": "C", "value": random.randint(1, 100)}
]
# 数据模型
class DataModel(BaseModel):
name: str
value: int
@app.get("/data")
async def get_data():
return data
// echart_config.js
import * as echarts from 'echarts';
const option = {
title: {
text: '静态图表示例'
},
tooltip: {},
legend: {
data:['销量']
},
xAxis: {
data: ["A", "B", "C"]
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: []
}]
};
export default option;
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>静态图表示例</title>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
</head>
<body>
<div id="main" style="width: 600px;height:400px;"></div>
<script>
const chartDom = document.getElementById('main');
const myChart = echarts.init(chartDom);
const option = require('./echart_config.js');
myChart.setOption(option);
// 获取数据并更新图表
async function fetchData() {
const response = await axios.get('http://localhost:8000/data');
const data = response.data;
myChart.setOption({
series: [{
data: data.map(item => item.value)
}]
});
}
fetchData();
setInterval(fetchData, 2000); // 每2秒更新一次数据
</script>
</body>
</html>
uvicorn main:app --reload
拜访 http://localhost:8000/data
获取数据,并检查浏览器中的静态图表。
经由过程FastAPI跟ECharts的结合,我们可能轻松实现静态图表的绘制。FastAPI的高机能跟ECharts的丰富图表范例为我们供给了富强的支撑。在现实利用中,可能根据须要调剂数据源、图表范例跟款式,实现更多功能。