是否可以以特定样式包含部分的图例文字,例如粗体或斜体?
答案 0 :(得分:25)
正如silvado在评论中提到的那样,您可以使用LaTeX渲染来更灵活地控制文本渲染。有关详细信息,请参阅此处:http://matplotlib.org/users/usetex.html
一个例子:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rc
# activate latex text rendering
rc('text', usetex=True)
x = np.arange(10)
y = np.random.random(10)
z = np.random.random(10)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x, y, label = r"This is \textbf{line 1}")
ax.plot(x, z, label = r"This is \textit{line 2}")
ax.legend()
plt.show()
注意标签字符串前面的'r'。因此,\将被视为乳胶命令而不被解释为python会这样做(因此您可以键入\textbf
而不是\\textbf
)。
答案 1 :(得分:15)
在' $$'之间写下来强制matplotlib解释它。
import matplotlib.pyplot as plt
plt.plot(range(10), range(10), label = "Normal text $\it{Italics}$")
plt.legend()
plt.show()
答案 2 :(得分:0)
通过解决该问题的方法,为above answer添加了更多选项,使用 OO 界面不仅基于状态的pyplot界面,还可以在文本中包含空格,除了斜体
之外的粗体选项:ax.legend(handles=legend_handles,
labels=legend_labels,
loc='upper right',
shadow=True,
fancybox=True,
facecolor='#C19A6B',
title="$\\bf{BOLDFACED\ TITLE}$", # to boldface title with space in between
prop={'size': 12, 'style': 'italic'} # properties for legend text
)
对于斜体标题,中间有空格,请将上面的title
替换为
title="$\\it{ITALICIZED\ TITLE}$",