matplotlib - Matplotlib,使用 LaTeX的一致字体

  显示原文与译文双语对照的内容
0 0

我的问题是我想借用LaTeX标题在某些图,并且没有LaTeX低些。 现在,matplotlib有两个不同的默认字体LaTeX标题和非LaTeX标题和我想这二者保持一致。 有一个RC设置已经更改,它将允许该附件?

我生成打印用下面的代码:

import numpy as np
from matplotlib import pyplot as plt
tmpData = np.random.random( 300 )
##Create a plot with a tex title
ax = plt.subplot(211)
plt.plot(np.arange(300), tmpData)
plt.title(r'$W_y(tau, j=3)$')
plt.setp(ax.get_xticklabels(), visible = False)
##Create another plot without a tex title
plt.subplot(212)
plt.plot(np.arange(300), tmpData )
plt.title(r'Some random numbers')
plt.show()

下面是不一致我在说。 坐标轴刻度标记标签精简看起来相对于标题.:

时间:原作者:2个回答

0 0

tex style/mathtext内容设为类似于普通文本,需要设置mathtext字体Bitstream Vera Sans,

import matplotlib
matplotlib.rcParams['mathtext.fontset'] = 'custom'
matplotlib.rcParams['mathtext.rm'] = 'Bitstream Vera Sans'
matplotlib.rcParams['mathtext.it'] = 'Bitstream Vera Sans:italic'
matplotlib.rcParams['mathtext.bf'] = 'Bitstream Vera Sans:bold'
matplotlib.pyplot.title(r'ABC123 vs $mathrm{ABC123}^{123}$')

如果要使普通文字类似于mathtext文本,可以改变一切Stix 。 这将影响标志。标题,刻度等。

import matplotlib
matplotlib.rcParams['mathtext.fontset'] = 'stix'
matplotlib.rcParams['font.family'] = 'STIXGeneral'
matplotlib.pyplot.title(r'ABC123 vs $mathrm{ABC123}^{123}$')

基本思想是需要设置常规和mathtext字体相同,并且这样做的方法有点模糊不清。 可以看到一系列自定义字体,

sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])

正如其他代表提到,还可以同时LaTeX渲染都是为了你用一种字体通过设置文本中.usetex rcParams,但很慢的并且完全没有必要。

原作者:
0 0

Edit

如果要更改所使用的字体LaTeX matplotlib里面,看看这个页面

http://matplotlib .sourceforge .net/users/usetex 。html

这里有一个示例

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)

挑你喜欢的 !

如果希望,可以尝试以粗体 mathbf

plt.title(r'$mathbf{W_y(tau, j=3)}$')

Edit 2

下面的命令将生成默认为粗体。

font = {'family' : 'monospace',
        'weight' : 'bold',
        'size'   : 22}
rc('font', **font)
原作者:
...