我想使用Vue.js框架显示多个数据集。数据集来自FastAPI服务器后端,包含模拟的股票数据。
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
import polars as pl
from pydantic import BaseModel
from typing import List
app = FastAPI()
# Allow requests from the Vue.js frontend
app.add_middleware(
CORSMiddleware,
allow_origins=["http://localhost:5173"],
allow_methods=["*"],
allow_headers=["*"],
)
class StockDevelopment(BaseModel):
date: str
actual_stock: float
predicted_stock: float
mock_data = pl.DataFrame({
"date": ["2023-09-01", "2023-09-02", "2023-09-03", "2023-09-04", "2023-09-05"],
"actual_stock": [100, 150, 120, 90, 115],
"predicted_stock": [110, 140, 130, 100, 113],
})
@app.get("/data")
async def get_data() -> List[StockDevelopment]:
stock_rows = mock_data.to_dicts()
stocks = [StockDevelopment(**row) for row in stock_rows]
return stocks
date
、actual_stock
和predicted_stock
Dataframe 列转换为行。可以通过<fastapi-server-ipaddress>/data
HTTP端点请求股票数据。
如何将实际库存和预测库存并排显示?类似下图:
1条答案
按热度按时间5m1hhzi41#
将
vue-chartjs
与chart.js
软件包一起使用。使用以下命令安装它们:之后,将其导入Vue组件。但是,请记住,在条形图上显示API数据时存在问题。也就是说,Chart.js会尝试同步呈现图表和访问图表数据,因此图表会在API数据到达之前挂载。
通过使用
v-if
条件渲染来防止这种情况。有关更多信息,请查看文档。现在,创建带有loaded、data和option属性的条形图组件。条形图只有在数据准确无误地到达时才被加载。这是通过在从API端点获取数据后将
loaded
属性设置为true
来实现的。数据集的值在HTTP请求期间设置,并使用map
函数填充每个数据。如果你想添加更多的数据集,那么用另一个条目扩展chartData.datasets
数组。然后,您可以将数据分配给this.chartData.datasets[2].data
数组。注意:
stock.date
、stock.actual_stock
和stock.predicted_stock
的返回值必须与StockDevelopment
类中描述的相应FastAPI响应数据相匹配。