掌握FastAPI,ECharts輕鬆繪製動態圖表,解鎖數據可視化新技能

提問者:用戶APWJ 發布時間: 2025-06-08 02:38:24 閱讀時間: 3分鐘

最佳答案

引言

跟著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的豐富圖表範例為我們供給了富強的支撐。在現實利用中,可能根據須要調劑數據源、圖表範例跟款式,實現更多功能。

相關推薦