Matplotlib 自动化学式下标使用无需斜体文本

问题描述 投票:0回答:2

我正在尝试使用以下化学式自动标记 Python2.7 中 Matplotlib 图的 x 轴,该化学式以数字作为下标,不带斜体。

这里有一个代码来显示这一点:

import numpy as np
import pylab as plt

x = np.array([1,2,3,4])
y = np.array([1,2,3,4])

chem_list = ['H2O','CO2','X7Z4']

for j, elem in enumerate(chem_list):
    plt.plot(x,y)
    plt.xlabel(chem_list[j])
    plt.legend(loc=1)
    plt.show()

x 轴标签来自列表。列表中的每个项目都是一个标签,我需要将其用作标签中的文本。

这个方法有效,但是,文本是斜体的,我需要避免斜体文本。另一篇产生斜体文本的帖子:here.

我的问题示例:

对于循环的第一次迭代,我想使用 H2O ax 作为 x 轴标签,但我不希望它变为斜体。

有没有办法在Python中做到这一点?

python python-2.7 matplotlib plot
2个回答
5
投票

根据文档 (http://matplotlib.org/users/mathtext.html),您可以使用

\mathregular{...}
在数学文本表达式中使用常规文本。例如,对于您的情况,您可以写:

chem_list = ['$\mathregular{H_2O}$','$\mathregular{CO_2}$','$\mathregular{X_7Z_4}$']

0
投票
chem_list = ['H$\sf{_2}$O','CO$\sf{_2}$O','X$\sf{_7}$Z$\sf{_4}$']
© www.soinside.com 2019 - 2024. All rights reserved.