How is the trick of using the matplotlib library in FLASK?

Solution 1
#!/usr/bin/env python3
################################################################################
# To run:
# export FLASK_APP=Flask-matplotlib.py
# flask run
#
# Open browser and go to:
# http://127.0.0.1:5000/plot
################################################################################

import io
import numpy as np
from flask import Flask, Response
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
from matplotlib import pyplot as plt

plt.rcParams["figure.autolayout"] = True
plt.rcParams["figure.figsize"] = [12,10]

app = Flask(__name__)

@app.route('/plot')
def plot_fig():
   fig = Figure()
   axis = fig.add_subplot(1, 1, 1)

   # Generate x axis
   x = np.arange(0, 10, 0.1);

   # Plot it
   axis.plot(x, np.sin(x), '-')
   axis.plot(x, np.cos(x), '--')
   output = io.BytesIO()
   FigureCanvas(fig).print_png(output)
   return Response(output.getvalue(), mimetype='image/png')
Solution 2
import matplotlib
from matplotlib import pyplot as plt
matplotlib.use('Agg')