掌握FastAPI,ECharts轻松绘制动态图表,解锁数据可视化新技能

发布时间:2025-06-08 02:38:24

引言

跟着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的丰富图表范例为我们供给了富强的支撑。在现实利用中,可能根据须要调剂数据源、图表范例跟款式,实现更多功能。