为了遵守期刊排版,我想在我的数字中使用Bitstream-Charter。到目前为止,这已经完美无缺,但我在使用下标和上标时发现了一个小问题。
以下按预期生成图例,标记(线)与标签垂直居中。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 1, 10)
y = x**2
plt.figure(dpi=200)
plt.plot(x, y,
label='$T^*_s$')
plt.plot(x, y,
label='$T^*_g$')
plt.legend()
plt.show()
以下内容产生一个图例,其中标记向下移动(与T的底部对齐)。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 1, 10)
y = x**2
plt.rc('text', usetex=True)
plt.rc('text', **{'latex.preamble':
'\\usepackage[bitstream-charter]{mathdesign}'})
plt.figure(dpi=200)
plt.plot(x, y,
label='$T^*_s$')
plt.plot(x, y,
label='$T^*_g$')
plt.legend()
plt.show()
无论如何都要向上移动这些标记,ti与T的中间对齐?我尝试过使用一些\vspace
命令,但它们不起作用。
答案 0 :(得分:1)
我承认,它可能不是解决方案中最简洁或最狡猾的解决方案,但一个相对简单的想法是让图例略微透明,然后手工绘制图例标签。这意味着您在设置图例时必须详细了解(即指定线条,颜色,位置等),但它允许更多的灵活性。此外,渲染图像可能会稍微移动文本,使其与您在窗口中看到的不同,因此您可能需要稍微玩一些位置。
import matplotlib.pyplot as plt
import numpy as np
from pylab import *
x = np.linspace(0, 1, 10)
y = x**2
plt.rc('text', usetex=True)
plt.rc('text', **{'latex.preamble':
'\\usepackage[bitstream-charter]{mathdesign}'})
plt.figure(dpi=200)
plt.plot(x, y, c='green')
line1 = Line2D(range(10), range(10), marker='_', color="blue")
line2 = Line2D(range(10), range(10), marker='_',color="green")
leg = plt.legend((line1,line2),('',''),numpoints=1, loc=1)
leg.get_frame().set_alpha(0.2)
plt.text(0.955, 0.925, "$T^*_s$")
plt.text(0.955, 0.865, "$T^*_g$")
plt.show()