matplotlib图例标记和文字未对齐

时间:2015-11-23 05:37:05

标签: python matplotlib

我在将下标放入图表的图例时遇到此问题。如果我没有在图例文本中使用下标,那么它看起来都很好并且手柄和文本是对齐的,但是对于下标,文本的字体会发生变化,并且它会卡在图例框的顶部。这就是我设置图例的方式

        ax.legend(loc='upper center', bbox_to_anchor=(0.5, 1.12),
             ncol=4,prop={'size':16})

,图例是

        legend_labels=['BR:$K_r$=5%',"BR:$K_r$=10%","Tape:$K_r$=5%","Tape:$K_r$=20%","HDD:$K_r$=5%","HDD:$K_r$=20%","SSD:$K_r$=5%","SSD:$K_r$=20%"]

我还看到了有关stackoverflow上文本和图例对齐的多个问题,但建议的解决方案对我不起作用。我尝试从图例中获取文本并将对齐设置为' center'无济于事。

以下是最低工作示例。

    from matplotlib.pyplot import *

    subplot(211)
    plot([1,2,3], label="$test_1$")
    plot([3,2,1], label="test2")
    legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3,
           ncol=2, mode="expand", borderaxespad=0.,prop={'size':18})
    show()

我正在使用python 2.7.6。

1 个答案:

答案 0 :(得分:0)

字体的差异来自数学模式:带有美元符号的周围文本告诉matplotlib使用LaTeX预处理文本,而LaTeX数学字体(Computer Modern)与Liberation Sans(或matplotlib用于纯文本的任何字体)不同。避免这种误解的最简单方法是使用数学模式仅用于索引

plot([1,2,3], label="test$_1$")

然后数学字体将仅用于索引:

enter image description here