Anzeigen von LaTeX-Notationsformeln in Python, matplotlib

1. Zuallererst

Vorheriger Artikel: http://qiita.com/damyarou/items/818b20ea0def9ff43484 Der Bruch `` `\ frac``` kann also nicht angezeigt werden? Ich habe das geschrieben, aber als ich es nachgeschlagen habe, gab es eine Möglichkeit, einen beträchtlichen Teil von LaTeX anzuzeigen. (http://matplotlib.org/users/usetex.html)

2. Vorbereitung

2.1 Backend

Es scheint notwendig zu sein, ein Backend anzugeben. In meinem Fall hat die von pyenv installierte matplotlib in der Vergangenheit nicht funktioniert, daher habe ich TkAgg angegeben.

(Korrespondenz) Erstellen Sie eine Datei mit dem Namen matplotlibrc in `~ / .marplotlib```, schreiben Sie eine Zeile `` Backend: TkAgg``` und speichern Sie.

(Referenz) http://blog.livedoor.jp/mt_kinabalu/archives/48592087.html http://qiita.com/katryo/items/918667f28301fdec89ba

2.2 type1cm.sty Während des Versuchs erhielt ich außerdem die Meldung "type1cm.sty existiert nicht", daher habe ich diese in dem von TeX gelesenen Ordner installiert. In meinem Fall habe ich BasicTeX auf meinem Mac, also lege ich `` `type1cm.sty``` in den folgenden Ordner. Ordner mytool ist ein Ordner, in dem Ihre eigenen Stildateien gespeichert werden, die nicht standardmäßig enthalten sind.

/usr/local/texlive/2015basic/texmf-local/tex/mytool/

3. Programm testen

3.1 Vorsichtsmaßnahmen

from matplotlib import rc

rc('text', usetex=True)
text14=r'$\displaystyle r=\sqrt{\frac{-2(1-\rho^2)\cdot\ln(1-p)}{1-2\rho\cdot\sin\theta\cdot\cos\theta}}$'
fnameF='fig_tex_test.pdf'
......
......
plt.savefig(fnameF)
text02='(2)   '+r'$\thickmuskip=0mu \medmuskip=0mu \thinmuskip=0mu \displaystyle f(x)=....

(Referenz) http://oversleptabit.com/?p=556

3.2 Ausführungsskript

Das Programm erstellt ein PDF, das mit Imagemagick in PNG konvertiert wird.

python py_tex_test.py

convert -trim -density 400 fig_tex_test.pdf -bordercolor "white" -border 10x10 fig_tex_test.png

3.3 Beispielprogrammcode

python


import matplotlib.pyplot as plt
from matplotlib.ticker import *
from matplotlib import rc

#reference: http://oversleptabit.com/?p=556

rc('text', usetex=True)

# drawing area: w x h = 16 x 25 imaged A4 paper
xmin=0
xmax=16
ymin=0
ymax=25
dh=1.5 # height of one row
A=[]   # actural y-axis
B=[]   # grid number in y-axis
for i in range(0,int(ymax//dh)+1):
    s='{0:.1f}'.format(dh*i)
    A=A+[float(s)]
    B=B+[i]

fnameF='fig_tex_test.pdf'
fig = plt.figure()
ax1=plt.subplot(111)
ax1 = plt.gca()
ax1.set_xlim([xmin,xmax])
ax1.set_ylim([ymax,ymin])
aspect = (abs(ymax-ymin))/(abs(xmax-xmin))*abs(ax1.get_xlim()[1] - ax1.get_xlim()[0]) / abs(ax1.get_ylim()[1] - ax1.get_ylim()[0])
ax1.set_aspect(aspect)
#plt.axis('off')
ax1.tick_params(labelsize=6)
ax1.xaxis.set_major_locator(MultipleLocator(1))
ax1.yaxis.set_major_locator(MultipleLocator(dh))
plt.yticks(A,B)
plt.grid(which='both',lw=0.3, color='#cccccc',linestyle='-')

############################################
iis=1
title='Equations'
text01='(1)   '+r'$\thickmuskip=0mu \medmuskip=0mu \thinmuskip=0mu \displaystyle \int\int\int_V\left(\frac{\partial P}{\partial x}+\frac{\partial Q}{\partial y}+\frac{\partial R}{\partial z}\right)dx dy dz=\int\int_S(P dy dz+Q dz dx+R dx dy)$'
text02='(2)   '+r'$\thickmuskip=0mu \medmuskip=0mu \thinmuskip=0mu \displaystyle f(x)=\frac{a_0}{2}+\sum_{n=1}^{+\infty}\left(a_n\cos\frac{n\pi x}{\ell}+b_n\sin\frac{n\pi x}{\ell}\right)$'
text03='(3)   '+r'$\displaystyle f(x)=\frac{a_0}{2}+\sum_{n=1}^{+\infty}\left(a_n\cos\frac{n\pi x}{\ell}+b_n\sin\frac{n\pi x}{\ell}\right)$'
text04='(4)   '+r'$\displaystyle a_0=\frac{1}{\ell}\int_{-\ell}^{\ell}f(x) dx$'
text05='(5)   '+r'$\displaystyle a_n=\frac{1}{\ell}\int_{-\ell}^{\ell}f(x)\cos\frac{n\pi x}{\ell}dx \qquad (n=1,2,3, \cdots)$'
text06='(6)   '+r'$\displaystyle b_n=\frac{1}{\ell}\int_{-\ell}^{\ell}f(x)\sin\frac{n\pi x}{\ell}dx \qquad (n=1,2,3, \cdots)$'
text07='(7)   '+r'$\displaystyle e^x=1+\frac{x}{1!}+\cdots+\frac{x^{n-1}}{(n-1)!}+\frac{e^{\theta x}}{n!}x^n \qquad (0<\theta<1)$'
text08='(8)   '+r'$\displaystyle \lim_{n\to\pm\infty}\left(1+\frac{1}{x}\right)^x=e$'
text09='(9)   '+r'$\displaystyle \cosh z=\frac{e^z+e^{-z}}{2} \qquad \sinh z=\frac{e^z-e^{-z}}{2}$'
text10='(10)  '+r'$\displaystyle y=a\cdot x+b$'
text11='(11)  '+r'$\displaystyle a=\frac{n \sum xy-\sum x\cdot\sum y}{n \sum x^2-(\sum x)^2} \qquad \qquad b=\frac{\sum x^2\cdot \sum y-\sum x\cdot\sum xy}{n \sum x^2-(\sum x)^2}$'
text12='(12)  '+r'$\thickmuskip=0mu \medmuskip=0mu \thinmuskip=0mu \displaystyle r=\frac{n \sum xy-\sum x\cdot\sum y}{\sqrt{[n \sum x^2-(\sum x)^2]\cdot [n \sum y^2-(\sum y)^2]}}$'
text13='(13)  '+r'$\displaystyle r=\frac{n \sum xy-\sum x\cdot\sum y}{\sqrt{[n \sum x^2-(\sum x)^2]\cdot [n \sum y^2-(\sum y)^2]}}$'
text14='(14)  '+r'$\displaystyle x=x_m+\sigma_x\cdot r \cdot\cos\theta \qquad y=y_m+\sigma_y\cdot r \cdot\sin\theta$'
text15='(15)  '+r'$\displaystyle r=\sqrt{\frac{-2(1-\rho^2)\cdot\ln(1-p)}{1-2\rho\cdot\sin\theta\cdot\cos\theta}}$'


xv0=0
fsize=4 # fontsize
xs=xv0+1; ys=iis*dh- 0.5*dh; plt.text(xs,ys,title,rotation=0,ha='left',va='center',fontsize=fsize,fontweight='bold')
xs=xv0+1; ys=iis*dh+ 0.5*dh; plt.text(xs,ys,text01,rotation=0,ha='left',va='center',fontsize=fsize)
xs=xv0+1; ys=iis*dh+ 1.5*dh; plt.text(xs,ys,text02,rotation=0,ha='left',va='center',fontsize=fsize)
xs=xv0+1; ys=iis*dh+ 2.5*dh; plt.text(xs,ys,text03,rotation=0,ha='left',va='center',fontsize=fsize)
xs=xv0+2; ys=iis*dh+ 3.5*dh; plt.text(xs,ys,text04,rotation=0,ha='left',va='center',fontsize=fsize)
xs=xv0+2; ys=iis*dh+ 4.5*dh; plt.text(xs,ys,text05,rotation=0,ha='left',va='center',fontsize=fsize)
xs=xv0+2; ys=iis*dh+ 5.5*dh; plt.text(xs,ys,text06,rotation=0,ha='left',va='center',fontsize=fsize)
xs=xv0+1; ys=iis*dh+ 6.5*dh; plt.text(xs,ys,text07,rotation=0,ha='left',va='center',fontsize=fsize)
xs=xv0+1; ys=iis*dh+ 7.5*dh; plt.text(xs,ys,text08,rotation=0,ha='left',va='center',fontsize=fsize)
xs=xv0+1; ys=iis*dh+ 8.5*dh; plt.text(xs,ys,text09,rotation=0,ha='left',va='center',fontsize=fsize)
xs=xv0+1; ys=iis*dh+ 9.5*dh; plt.text(xs,ys,text10,rotation=0,ha='left',va='center',fontsize=fsize)
xs=xv0+1; ys=iis*dh+10.5*dh; plt.text(xs,ys,text11,rotation=0,ha='left',va='center',fontsize=fsize)
xs=xv0+1; ys=iis*dh+11.5*dh; plt.text(xs,ys,text12,rotation=0,ha='left',va='center',fontsize=fsize)
xs=xv0+1; ys=iis*dh+12.5*dh; plt.text(xs,ys,text13,rotation=0,ha='left',va='center',fontsize=fsize)
xs=xv0+1; ys=iis*dh+13.5*dh; plt.text(xs,ys,text14,rotation=0,ha='left',va='center',fontsize=fsize)
xs=xv0+1; ys=iis*dh+14.5*dh; plt.text(xs,ys,text15,rotation=0,ha='left',va='center',fontsize=fsize)
############################################

#plt.savefig(fnameF, dpi=200, bbox_inches="tight", pad_inches=0.2)
plt.savefig(fnameF)
#plt.show()

4. Ergebnisse

fig_tex_test.png

erledigt!

das ist alles

Recommended Posts

Anzeigen von LaTeX-Notationsformeln in Python, matplotlib
Klassennotation in Python
Zeigen Sie UTM-30LX-Daten in Python an
Konvertieren Sie die CIDR-Notation in Python
Inklusive Notation im Argument der Python-Funktion
Audio-Wellenform-Anzeige in Python
Zeigen Sie Zeichen wie AA in Python an
Heatmap mit Dendrogramm in Python + Matplotlib
Der erste Schritt von Python Matplotlib
So zeigen Sie Formeln in Latex an, wenn Sie sympy (> = 1.4) in Google Colaboratory verwenden
[Python, Julia] 3D-Anzeige in der Jupyter-Mayavi-Bibliothek
So unterdrücken Sie Anzeigefehler in matplotlib
Anzeigen des Candlestick-Diagramms in Python (Matplotlib-Edition)
Zeigen Sie eine Liste der Alphabete in Python 3 an
Anzeigen von Matplotlib-Diagrammen in einer Webanwendung
Zeigen Sie Python 3 im Browser mit MAMP an
Zeigen Sie das xy-Diagramm von Matplotlib mit PySimpleGUI an.
So zeigen Sie die neunundneunzig Tabelle in Python an
Pyopengl im Browser anzeigen (Python + Aal)
So zeigen Sie Hello World in Python an
Warum kann ich matplotlib nicht mit Python installieren? !!
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Unittest in Python
Empfangen und Anzeigen von HTML-Formulardaten in Python
Wenn ich matplotlib in Python versuche, heißt es'cairo.Context '.
# Python-Grundlagen (#matplotlib)
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
Korrigieren Sie Schwankungen der Notation in halber und voller Breite in Python
Zeigen Sie FX (Forex) Daten Candle Stick in Python an
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
Meine Matplotlib (Python)
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
Reflexion in Python
Konstante in Python
nCr in Python.
Format in Python