Solution
import BytesIO
import base64
import maptlotlib.pyplot as plt
# Make your plot like you normally do.
plt.plot([1, 2, 3], [4, 5, 6]) # Simple example.
# Put plot in memory.
handle = BytesIO()
plt.savefig(handle, format='png')
plt.close()
# Encode.
handle.seek(0)
figdata_png = base64.b64encode(handle.getvalue()).decode('utf8')
from flask import render_template
render_template('index.html', plot=plot)