[PYTHON] Créer un graphique SVG avec matplotlib avec heroku (affiché en japonais)

introduction

Veuillez vous référer aux Articles précédents pour la création de graphes sans japonais.

Préparation de la police japonaise

Préparez un fichier de police japonais approprié et ajoutez-le à git. [Noto] de Google (http://googledevjp.blogspot.jp/2014/07/noto.html).

$ cd qiita-sin
$ mkdir fonts
$ cp .../NotoSansCJKjp-Medium.otf fonts/

Correction de l'application

app.py


#!/bin/env python
# coding: utf-8

import os
import StringIO

from flask import Flask, render_template
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
import numpy as np

fontprop = FontProperties(fname='./fonts/NotoSansCJKjp-Medium.otf', size=10)

app = Flask(__name__)
app.debug = True

@app.route('/')
def do_sin():
    x = np.arange(-np.pi, np.pi, 0.1)
    y = np.sin(x)

    fig, ax = plt.subplots(1)
    plt.plot(x, y, label="sin")
    plt.legend(loc="best")

    strio = StringIO.StringIO()
    fig.savefig(strio, format="svg")
    plt.close(fig)

    strio.seek(0)
    svgstr = strio.buf[strio.buf.find("<svg"):]

    return render_template("sin.html", svgstr=svgstr.decode("utf-8"))

@app.route('/sin-jp')
def do_sin_jp():
    x = np.arange(-np.pi, np.pi, 0.1)
    y = np.sin(x)

    fig, ax = plt.subplots(1)
    plt.plot(x, y, label=u"courbe de péché")
    plt.legend(loc="best", prop=fontprop)
    ax.set_title(u"tester", font_properties=fontprop)
    ax.set_xlabel(u"axe x", font_properties=fontprop)
    ax.set_ylabel(u"axe y", font_properties=fontprop)

    strio = StringIO.StringIO()
    fig.savefig(strio, format="svg")
    plt.close(fig)

    strio.seek(0)
    svgstr = strio.buf[strio.buf.find("<svg"):]

    return render_template("sin.html", svgstr=svgstr.decode("utf-8"))

if __name__ == "__main__":
    port = int(os.environ.get("PORT", 5000))
    app.run(port=port)

Voir https://limitless-garden-3527.herokuapp.com/sin-jp pour l'application terminée

point

Préparez votre propre fichier de police et créez un fontprop, et spécifiez ce fontprop lors du dessin.

Recommended Posts

Créer un graphique SVG avec matplotlib avec heroku (affiché en japonais)
Ecrire des graphiques SVG avec matplotlib avec heroku
Dessinez le japonais avec matplotlib sur Ubuntu
Créer un graphique avec des bordures supprimées avec matplotlib
Japonais avec matplotlib
Créer une image avec des caractères avec python (japonais)
Graphique de bande avec matplotlib
Mettez Scipy + Matplotlib dans Ubuntu sur Vagrant et affichez le graphique avec X11 Forwarding
Graphique des données Excel avec matplotlib (1)
Procédures à suivre lorsque le japonais n'est pas affiché dans matplotlib
tracé Créer un graphique avec un bouton
Méthode de dessin graphique avec matplotlib
Union Find sur networkX
Utiliser des graphiques directionnels avec networkx
Graphique en temps réel avec Plotly (Python)
Dessiner des graphiques avec Windows10 + Julia + PyPlot
Visualisez des graphiques avec des arêtes étiquetées en japonais sur NetworkX et PyGraphviz / Gephi
Ecrire des graphiques SVG avec matplotlib avec heroku
Traitement de fichiers multiples avec Kivy + Matplotlib + Draw Graph sur GUI
Graphique des données Excel avec matplotlib (2)
Écrivez des graphiques en temps réel avec Matplotlib sur le notebook Jupyter
Je veux créer un graphique avec des lignes ondulées au milieu avec matplotlib (je veux manipuler l'impression)
Résolvez les caractères japonais brouillés dans matplotlib de Jupyter Notebook sur Docker
matplotlib: insérer un commentaire dans le graphique de l'axe des temps
Dessinez un graphique lâche avec matplotlib
Comment exécuter matplotlib sur heroku
Dessiner un graphique du taux de rétention avec Matplotlib
Heatmap avec dendrogramme en Python + matplotlib
Réglage facile de la police japonaise avec matplotlib
Rendre matplotlib compatible avec le japonais en 3 minutes
(Matplotlib) Je veux dessiner un graphique avec une taille spécifiée en pixels
Créez et modifiez des feuilles de calcul dans n'importe quel dossier sur Google Drive avec python
Créez un environnement Python 3 avec pyenv sur Mac et affichez des graphiques Network X
Peut être fait en 5 minutes!? Créez une API de détection de visage avec Fast API et OpenCV et publiez-la sur Heroku
[Python] Définissez la plage du graphique avec matplotlib
Mettez les polices japonaises dans les images avec Colaboratory
Remarques sur la réalisation de l'OCR japonais avec Python
Afficher le graphe xy de Matplotlib avec PySimpleGUI.
Afficher le graphique japonais avec VS Code + matplotlib
[Python] Rendons matplotlib compatible avec le japonais
Graphiques de fonctions triangulaires avec numpy et matplotlib
Lancez l'application Flask avec Docker sur Heroku
[Python] Localisation japonaise de matplotlib sur Ubuntu
La date n'est pas affichée correctement dans matplotlib.