Python 3.x 在Python中,如何将数组元素格式化为标题/标签?

Python 3.x 在Python中,如何将数组元素格式化为标题/标签?,python-3.x,string,matplotlib,latex,Python 3.x,String,Matplotlib,Latex,我有一个数字数组,我希望它的元素作为Python图形中子图的标题。我想将这些标题格式化为latex样式 恐怕这可能是个简单的问题,但我还没有在其他地方看到答案。我见过人们使用原始字符串r'$…$'对于latex表达式,但我无法成功应用它来解决此问题 导入matplotlib.pyplot作为plt 将numpy作为np导入 从matplotlib导入rc #乳胶字体 rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']}) r

我有一个数字数组,我希望它的元素作为Python图形中子图的标题。我想将这些标题格式化为latex样式

恐怕这可能是个简单的问题,但我还没有在其他地方看到答案。我见过人们使用原始字符串r'$…$'对于latex表达式,但我无法成功应用它来解决此问题

导入matplotlib.pyplot作为plt
将numpy作为np导入
从matplotlib导入rc
#乳胶字体
rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
rc('text',usetex=True)
#要显示的一些示例数据
x=np.linspace(0,2*np.pi,400)
y=np.sin(x**2)
#我想要的数字作为子地块的标题
Nums=[0.01,0.10,0.30,0.75,1.00,2.00,10.0,12.0]
nrows=2
ncols=4
图,ax=plt子批次(nrows=2,ncols=4)
对于范围内的行(nrows):
对于范围内的列(ncols):
ax[row,col].set_title(repr(Nums[col+row*ncols])+'$\\\\mathrm{GeV}$')
ax[行,列].绘图(x,y)
plt.show()

我能做的最好的事情就是用latex风格写单位,用“文本”风格写数字

你怎么看

import matplotlib.pyplot as plt
import numpy as np
from matplotlib import rc

#LaTeX font
rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
rc('text', usetex=True) 

# Some example data to display
x = np.linspace(0, 2 * np.pi, 400)
y = np.sin(x ** 2)

#The numbers I want as titles for the subplots
Nums = [0.01,0.10,0.30,0.75,1.00,2.00,10.0,12.0]

nrows=2
ncols=4
fig, ax = plt.subplots(nrows=2,ncols=4)

for row in range(nrows):
        for col in range(ncols):
                #ax[row,col].set_title(repr(Nums[col+row*ncols]) + '$\\ \\mathrm{GeV}$')
                ax[row,col].set_title(r'${:.2f}\mathrm{{GeV}}$'.format(Nums[col+row*ncols]))
                ax[row,col].plot(x, y)
plt.show()
给你这个输出

在您的解决方案中,您只是将GeV部分编码为laTex,而数字编码为普通测试(而不是美元)

您可以找到有关所用格式语句的更多信息


注意:应将
Nums
替换为
Nums
。大写的变量用于类。阅读指南了解更多信息。

请附加一个屏幕截图,以澄清您的陈述“我能做的最好的事情就是用latex样式写单位,用“文本”样式写数字。”