引言
跟著Web開辟的壹直進步,數據可視化已成為展示跟分析數據的重要手段。FastAPI,作為一款現代、疾速(高機能)的Web框架,與ECharts(一個利用JavaScript實現的開源可視化庫)結合,可能輕鬆實現靜態圖表的繪製。本文將具體介紹怎樣利用FastAPI跟ECharts創建靜態數據可視化利用。
FastAPI簡介
FastAPI是一個用於構建API的現代、疾速(高機能)的Web框架,由Python編寫。它存在以下特點:
- 疾速:利用Starlette跟Pydantic庫,存在高機能。
- 易於編寫:遵守Python風格指南。
- 主動文檔:利用Swagger UI主動生成文檔。
- 範例保險:利用Python的範例提示功能。
ECharts簡介
ECharts是一個利用JavaScript實現的開源可視化庫,供給直不雅、互動式、可高度定製化的圖表。它存在以下特點:
- 豐富的圖表範例:包含折線圖、柱狀圖、餅圖、地圖等。
- 交互性強:支撐滑鼠變亂、縮放、拖動等交互操縱。
- 高度定製:支撐自定義圖表款式、色彩、動畫等。
FastAPI與ECharts結合實現靜態圖表
以下是一個簡單的示例,展示怎樣利用FastAPI跟ECharts創建一個靜態圖表。
步調1:創建FastAPI利用
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
步調2:創建ECharts設置文件
// 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;
步調3:在HTML文件中引入FastAPI跟ECharts
<!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>
步調4:啟動FastAPI利用
uvicorn main:app --reload
拜訪 http://localhost:8000/data
獲取數據,並檢查瀏覽器中的靜態圖表。
總結
經由過程FastAPI跟ECharts的結合,我們可能輕鬆實現靜態圖表的繪製。FastAPI的高機能跟ECharts的豐富圖表範例為我們供給了富強的支撐。在現實利用中,可能根據須要調劑數據源、圖表範例跟款式,實現更多功能。