Solution
import io
from flask import make_response
...
@app.route("/my_plot.png")
def my_plot():
....
coin_plot = sns.catplot(x='24hours', y='coin name', data=plot_df, kind='bar')
plt.title('Coins and 24 hours market change')
buffer = io.StringIO()
coin_plot.savefig(buffer, format="png")
buffer.seek(0)
response = make_response(buffer.read())
response.headers.set('Content-Type', 'image/png')
response.headers.set('Content-Disposition', 'attachment', filename='image.png')
return response