Python下使用matplotlib庫時,如何與LaTeX結合起來?

最近寫文章,用Python的matplotlib的庫畫圖,但是縱軸橫軸都是些公式,因為會用LaTeX,所以想直接借用LaTeX公式的編輯方法,查文章發現了如下:

多以嘗試,但是未果,失敗

報錯如下:

請大家支招,謝謝了


我是提問者, @劉海洋 老師給出比較理想的答案,解決了我的問題,十分感謝。

**************************2017-01-23**************************

謝謝 @孟晨 師兄給出了中文支持問題的回答,在此將師兄的回答放到這裡:

因為調用的是 LaTeX,所以中文只能用 CJK 做。

而用 CJK 做,就很麻煩。

如果在 Windows 平台上還好,在 *nix 上只能用 gbsn 或者 gbkai。

師兄給出的demo:

# -*- coding: utf8 -*-
from __future__ import unicode_literals
import numpy as np
import matplotlib
matplotlib.rcParams["text.usetex"] = True
matplotlib.rcParams["text.latex.unicode"] = True
matplotlib.rcParams["text.latex.preamble"] = [
"\usepackage{CJK}",
r"AtBeginDocument{egin{CJK}{UTF8}{gbsn}}",
r"AtEndDocument{end{CJK}}",
]
import matplotlib.pyplot as plt

plt.figure(1, figsize=(6, 4))
ax = plt.axes([0.1, 0.1, 0.8, 0.7])
t = np.arange(0.0, 1.0 + 0.01, 0.01)
s = np.cos(2*2*np.pi*t) + 2
plt.plot(t, s)

plt.xlabel(r" extbf{時間 (s)}")
plt.ylabel("\textit{Velocity (u00B0/sec)}", fontsize=16)
plt.title(r"TeX is Number $displaystylesum_{n=1}^infty"
r"frac{-e^{ipi}}{2^n}$!", fontsize=16, color="r")
plt.grid(True)
plt.show()

結果

**************************2017-01-22**************************

但是現在依然不能支持中文,希望大家可以給出建議。(已經基本解決)

我把新的代碼和文檔圖片分享給大家:

from matplotlib import rc
rc("font",**{"family":"sans-serif","sans-serif":["Helvetica"]})
## for Palatino and other serif fonts use:
rc("font",**{"family":"serif","serif":["Palatino"]})
rc("text", usetex=True)

import numpy as np
import matplotlib.pyplot as plt

# Example data
t = np.arange(0.0, 1.0 + 0.01, 0.01)
s = np.cos(4 * np.pi * t) + 2

plt.rc("text", usetex=True)
plt.rc("font", family="serif")
plt.plot(t, s)

plt.xlabel(r" extbf{time} (s)")
plt.ylabel(r" extit{voltage} (mV)",fontsize=16)
plt.title(r"TeX is Number "
r"$displaystylesum_{n=1}^inftyfrac{-e^{ipi}}{2^n}$!",
fontsize=16, color="gray")
# Make room for the ridiculously large title.
plt.subplots_adjust(top=0.8)

plt.savefig("tex_demo")
plt.show()

生成的圖片文檔如下:


誰有具體一些的方法啊,求助(?&> &


最近發現了一個組裡師兄開發的python庫:pyx,完美用python畫帶latex公式的圖,不過單論畫圖的話肯定不如matplotlib強大,科研中常用的圖應該是夠了


推薦閱讀:

用Python寫過哪些「腦洞大開」的小工具?
在數據分析方面,比起python,excel的局限性在哪?
django+nginx+uwsgi+git有哪些自動化部署工具?
uWSGI 伺服器的 uwsgi 協議究竟用在何處?
使用了Gunicorn或者uWSGI,為什麼還需要Nginx?

TAG:Python | 編程 | LaTeX | Matplotlib |