相关疑难解决方法(0)

Matplotlib在text.usetex == True时不使用乳胶字体

我想用乳胶电脑现代字体为我的情节创建标签.但是,说服matplotlib使用乳胶字体的唯一方法是插入如下内容:

title(r'$\mathrm{test}$')
Run Code Online (Sandbox Code Playgroud)

这当然是荒谬的,我告诉latex要启动数学模式,然后暂时退出数学模式来编写实际的字符串.如何确保所有标签都以乳胶呈现,而不仅仅是公式?我如何确保这将是默认行为?

最小的工作示例如下:

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

# use latex for font rendering
mpl.rcParams['text.usetex'] = True


x = np.linspace(-50,50,100)
y = np.sin(x)**2/x
plt.plot(x,y)

plt.xlabel(r'$\mathrm{xlabel\;with\;\LaTeX\;font}$')
plt.ylabel(r'Not a latex font')
plt.show()
Run Code Online (Sandbox Code Playgroud)

这给出了以下结果:

绘图显示乳胶字体类型的错误呈现

这里x轴是我想要标签出现的方式.如何确保所有标签都显示为这样,而无需进入数学模式并再次返回?

python latex matplotlib

36
推荐指数
3
解决办法
3万
查看次数

输入带有日志图的1字体

我正在尝试使用Matplotlib图形作为相机就绪提交的一部分,并且出版社只需要使用Type 1字体.

我发现PDF后端很乐意为具有线性Y轴的简单图形输出Type-1字体,但是输出用于对数Y轴的Type-3字体.

使用对数yscale会导致使用mathtext,它似乎使用Type 3字体,可能是因为默认使用指数表示法.我可以使用一个丑陋的黑客来解决这个问题 - 使用pyplot.yticks()强制轴刻度不使用指数 - 但这需要移动绘图区域以容纳大标签(如10 ^ 6)或将轴写为10,100,1K等,所以它们适合.

我已经使用matplotlib master分支测试了下面的示例,以及1.1.1,它产生相同的行为,所以我不知道这是一个bug,可能只是意外的行为.

#!/usr/bin/env python
# Simple program to test for type 1 fonts. 
# Generate a line graph w/linear and log Y axes.

from matplotlib import rc, rcParams

rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
#rc('font',**{'family':'sans-serif','sans-serif':['computer modern sans serif']})

# These lines are needed to get type-1 results:
# http://nerdjusttyped.blogspot.com/2010/07/type-1-fonts-and-matplotlib-figures.html
rcParams['ps.useafm'] = True
rcParams['pdf.use14corefonts'] = True
rcParams['text.usetex'] = False

import matplotlib.pyplot as plt

YSCALES = ['linear', 'log']

def plot(filename, yscale):
    plt.figure(1)
    xvals = range(1, 2) …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

11
推荐指数
2
解决办法
2843
查看次数

如何在Matplotlib中编写自己的LaTeX前导码?

我正在尝试创建一个matplotlib插入我的LaTeX文档中的数字,我需要粗体'i''j'符号,而不是他们的点和帽子.

我一直在使用的代码\mathbf{\hat{\textnormal{\bfseries\i}}}在我的文档,但这里使用了amsmath封装(或可能的amssymb包装,对不起,我不知道我是很新的这两个LaTeXmatplotlib)我不能在使用它matplotlib的标签.

因此,我很想知道如何使用LaTeXmatplotlib,以及如何编写一个序言安装即可使用这些符号所需要的包.我希望这是有道理的,我知道这可能已经在那里或很简单,但我是新的所以请不要生气!

感谢你们!

编辑

所以我已经设法通过编码实现了这一点,但是当我运行代码时,我的python kernel崩溃.不幸的是,我真的不了解我的代码或它出错的地方,所以上传它以防万一.很抱歉长时间上传.再次感谢提前!

from mpl_toolkits.mplot3d import Axes3D
import numpy, matplotlib, matplotlib.pyplot as pyplot

matplotlib.rcParams['text.usetex'] = True
matplotlib.rcParams['text.latex.preamble'] = [
    r'\usepackage{amsmath}',
    r'\usepackage{amssymb}']
matplotlib.rcParams['font.family'] = 'serif'
matplotlib.rcParams['font.serif'] = 'Computer Modern'
matplotlib.verbose.level = 'debug-annoying'

Module_Colour = '#F0AE1E'

fig = pyplot.figure()
ax = fig.add_subplot(111, projection='3d')

X_arr = numpy.array([1.0,0.0,0.0])
Y_arr = numpy.array([0.0,1.0,0.0])
Z_arr = numpy.array([0.0,0.0,1.0]) …
Run Code Online (Sandbox Code Playgroud)

python latex matplotlib

10
推荐指数
1
解决办法
6644
查看次数

标签 统计

matplotlib ×3

python ×3

latex ×2