Plotting data models
With the help of the numpy
and pandas
modules, FastAPI services can generate and render different types of graphs and charts using the matplotlib
utilities. Like in the previous discussions, we will utilize an io.ByteIO
stream and StreamResponse
to generate graphical results for the API endpoints. The following API service retrieves survey data from the repository, computes the mean for each data strata, and returns a line graph of the data in PNG format:
from io import BytesIO import matplotlib.pyplot as plt from survey.repository.answers import AnswerRepository from survey.repository.location import LocationRepository @router.get("/answers/line") async def plot_answers_mean(): x = [1, 2, 3, 4, 5, 6, 7] repo_loc = LocationRepository() repo_answers = AnswerRepository() locations = await repo_loc.get_all_location() temp = [] ...