matplotlib + locale de_DE + LaTeX =空格btw.十进制分隔符和数字

tpxzln5u  于 2023-10-24  发布在  其他
关注(0)|答案(2)|浏览(94)

如果我在启用LaTeX(usetex=True)的情况下运行下面的代码,那么我会在小数点逗号和后面的第一个数字之间得到一个奇怪的间距。有人知道如何解决这个问题吗?

import matplotlib.pyplot as plt
import locale

plt.style.use('classic')
locale.setlocale(locale.LC_NUMERIC, 'de_DE')
plt.rc('text', usetex=False)
font = {'family':'serif','size':14}
plt.rc('font',**font)
plt.rcParams['axes.formatter.use_locale'] = True

a=[.1,.2,.3,.4,.5]
b=[.1,.2,.3,.4,.5]

plt.plot(a,b)
plt.show()

另请参见随附图片进行说明:

谢谢你,谢谢

gg0vcinb

gg0vcinb1#

使用LaTeX-Package icomma解决了这个问题!

import matplotlib.pyplot as plt
import locale

plt.style.use('classic')
locale.setlocale(locale.LC_NUMERIC, 'de_DE')
plt.rc('text', usetex=True)
font = {'family':'serif','size':14}
plt.rc('font',**font)

# Add the following two lines to the initial code:
params= {'text.latex.preamble' : [r'\usepackage{icomma}']}
plt.rcParams.update(params)

plt.rcParams['axes.formatter.use_locale'] = True

a=[.1,.2,.3,.4,.5]
b=[.1,.2,.3,.4,.5]

plt.plot(a,b)
plt.show()
apeeds0o

apeeds0o2#

除了wohoo的回答,因为这对我不起作用。
而不是拟议的

params = {'text.latex.preamble' : [r'\usepackage{icomma}']}

我去掉方括号,

params= {'text.latex.preamble' : r'\usepackage{icomma}'}

它帮我解决了这个问题,去掉了逗号后面的空格。

相关问题