Ber*_*lly 6 python latex matplotlib macports
我正在使用Matplotlib来分析结果并生成数字.我需要图例和轴标签中的希腊符号,包括$\epsilon $.但是,生成的文本不区分"正常"\ epsilon和\ varepsilon ---它们都显示为\ varepsilon.这是一个最小的例子:
import numpy as np
from pylab import *
import matplotlib.pyplot as plt
t = np.arange(0.0, 1.0 + 0.01, 0.01)
s = np.cos(4 * np.pi * t) + 2
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(t, s, 'k-', linewidth=2.0, label=r'$\epsilon$, $\varepsilon$, $\phi$, $\varphi$, $\sigma$, $\varsigma$')
plt.title(r'$\epsilon$, $\varepsilon$, $\phi$, $\varphi$, $\sigma$, $\varsigma$')
plt.xlabel(r'$t [M]$')
plt.ylabel(r'$\epsilon$, $\varepsilon$, $\phi$, $\varphi$, $\sigma$, $\varsigma$')
ax.legend(ncol=2, loc='lower left', fancybox=True)
plt.show()
Run Code Online (Sandbox Code Playgroud)
当我在我的Macbook上处理这个(OS X El Capitan,Macports安装了TexLive和py27-matplotlib)时,除了\epsilon 之外,一切都正确呈现.
ETA:代码在不同的机器上做正确的事(Scientific Linux).
您没有在脚本中使用TeX.Matplotlib提供了所谓的MathText,它是LaTeX命令的子集,以普通的UTF8字符呈现.这是使用默认字体集的MathText的样子:
您可以更改字体集,使"\ varepsilon"看起来与"\ epsilon"不同.但是,似乎在可用的字体集中,只有"cm"实际上对这些命令具有不同的符号.
plt.rcParams["mathtext.fontset"] = "cm"
Run Code Online (Sandbox Code Playgroud)
这将产生:
plt.rcParams["text.usetex"] =True
Run Code Online (Sandbox Code Playgroud)
在脚本的开头.这需要一个有效的TeX安装.
这个例子看起来像这样,"\ varepsilon"和"\ epsilon"确实不同.
| 归档时间: |
|
| 查看次数: |
2079 次 |
| 最近记录: |