[PYTHON] SVG-Diagramm mit matplotlib mit Heroku erstellen (auf Japanisch angezeigt)

Einführung

Informationen zur Erstellung von Diagrammen ohne Japanisch finden Sie unter Vergangener Artikel.

Vorbereitung der japanischen Schrift

Bereiten Sie eine geeignete japanische Schriftdatei vor und fügen Sie sie zu git hinzu. Googles Noto.

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

App Fix

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"Sündenkurve")
    plt.legend(loc="best", prop=fontprop)
    ax.set_title(u"Prüfung", font_properties=fontprop)
    ax.set_xlabel(u"x-Achse", font_properties=fontprop)
    ax.set_ylabel(u"y-Achse", 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)

Die fertige App finden Sie unter https://limitless-garden-3527.herokuapp.com/sin-jp

Punkt

Bereiten Sie Ihre eigene Schriftartdatei vor, erstellen Sie eine Schriftartprop und geben Sie diese Schriftart beim Zeichnen an.

Recommended Posts

SVG-Diagramm mit matplotlib mit Heroku erstellen (auf Japanisch angezeigt)
Schreiben Sie SVG-Diagramme mit Matplotlib mit Heroku
Zeichne Japanisch mit matplotlib auf Ubuntu
Erstellen Sie ein Diagramm mit Rändern, die mit matplotlib entfernt wurden
Japanisch mit Matplotlib
Erstellen Sie ein Bild mit Zeichen mit Python (Japanisch)
Banddiagramm mit Matplotlib
Setzen Sie Scipy + Matplotlib in Ubuntu auf Vagrant und zeigen Sie die Grafik mit X11 Forwarding an
Zeichnen Sie Excel-Daten mit matplotlib (1)
Verfahren, die durchgeführt werden müssen, wenn Japanisch nicht in matplotlib angezeigt wird
Plotly Erstellen Sie ein Diagramm mit einer Schaltfläche
Diagrammzeichnungsmethode mit matplotlib
Union Find auf networkX
Verwenden Sie Richtungsdiagramme mit networkx
Echtzeitdiagramm mit Plotly (Python)
Zeichnen von Diagrammen mit Windows10 + Julia + PyPlot
Visualisieren Sie Diagramme mit japanisch beschrifteten Kanten in NetworkX und PyGraphviz / Gephi
Schreiben Sie SVG-Diagramme mit Matplotlib mit Heroku
Verarbeitung mehrerer Dateien mit Kivy + Matplotlib + Draw Graph auf der GUI
Zeichnen Sie Excel-Daten mit matplotlib (2)
Schreiben Sie Diagramme in Echtzeit mit Matplotlib auf dem Jupyter-Notizbuch
Ich möchte mit matplotlib ein Diagramm mit Wellenlinien in der Mitte erstellen (ich möchte den Eindruck manipulieren).
Löse verstümmelte japanische Zeichen in matplotlib von Jupyter Notebook auf Docker
matplotlib: Kommentar in Zeitachsendiagramm einfügen
Zeichnen Sie mit matplotlib ein loses Diagramm
Wie man Matplotlib auf Heroku ausführt
Zeichnen Sie mit Matplotlib ein Diagramm der Retentionsrate
Heatmap mit Dendrogramm in Python + Matplotlib
Einfache japanische Schrifteinstellung mit matplotlib
Machen Sie matplotlib in 3 Minuten mit Japanisch kompatibel
(Matplotlib) Ich möchte ein Diagramm mit einer in Pixel angegebenen Größe zeichnen
Erstellen und bearbeiten Sie Tabellenkalkulationen in einem beliebigen Ordner auf Google Drive mit Python
Erstellen Sie eine Python3-Umgebung mit pyenv auf einem Mac und zeigen Sie NetworkX-Diagramme an
Kann in 5 Minuten erledigt werden! Erstellen Sie eine Gesichtserkennungs-API mit Fast API und OpenCV und veröffentlichen Sie sie auf Heroku
[Python] Legen Sie den Diagrammbereich mit matplotlib fest
Fügen Sie mit Colaboratory japanische Schriftarten in Bilder ein
Hinweise zur japanischen OCR mit Python
Zeigen Sie das xy-Diagramm von Matplotlib mit PySimpleGUI an.
Japanisches Diagramm mit VS Code + matplotlib anzeigen
[Python] Lassen Sie uns matplotlib mit Japanisch kompatibel machen
Zeichnen Sie Dreiecksfunktionen mit Numpy und Matplotlib
Starten Sie die Flask-Anwendung mit Docker auf Heroku
[Python] Japanische Lokalisierung von matplotlib unter Ubuntu
Das Datum wird in matplotlib falsch angezeigt.