matplotlib,python:粗体字的标题的一部分

时间:2017-05-22 22:31:50

标签: python matplotlib

我想创建一个轴标题,其中部分标题以粗体显示。例如,我正在比较两个数据集并计算R ^ 2,如果有统计显着性,我想在标题中打印R ^ 2粗体。到目前为止,我只能使整个标题变得粗体。

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax1 = plt.subplot()
# example R^2 
r1 = np.random.random()
ax1.set_title('part of title that should not be bold, $R^2$: {0}'.format(np.around(r1, 3)), weight='bold')

我只想要后的数字" R ^ 2"大胆。

谢谢!

编辑:

下面的答案建议使用粗体MathText,例如:r" $ \ bf {0.333} $"。这会导致乳胶风格的数字,但它仍然不是粗体。 以下是粘贴到新的ipython会话中的代码,结果如下:

Here is the code from below pasted into a new ipython session, and the result

1 个答案:

答案 0 :(得分:2)

以下内容似乎仅适用于matplotlib第2版或更高版本。

可以在标题中使用粗体MathText使文本的一部分变为粗体,例如r"$\bf{0.333}$"。请注意,这是一个原始字符串(r"")。如果我们想用括号格式化字符串,则必须进行双重转义,

`r"$\bf{{{x}}}$".format(x=0.333)`

完整示例:

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax1 = plt.subplot()
# example R^2 
r1 = np.random.random()
ax1.set_title(r'non-bold part of title, $R^2$: $\bf{{{a}}}$'.format(a=np.around(r1, 3) ) )

plt.show()

enter image description here