Matplotlib绘图图例中的选项卡对齐方式

Matplotlib绘图图例中的选项卡对齐方式,matplotlib,legend,text-alignment,Matplotlib,Legend,Text Alignment,我想创建一个带有图例的绘图,将不同曲线的文本对齐。下面是一个简单的工作示例: import matplotlib.pyplot as plt import numpy as np x=np.linspace(0,10,100) plt.plot(x,np.sin(x),'-',label=r'1st, second, third, a$_b$') plt.plot(x,np.cos(x),'--',label=r'fourth, 5th, 5$_{fo}$, sixth') plt.legend

我想创建一个带有图例的绘图,将不同曲线的文本对齐。下面是一个简单的工作示例:

import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,10,100)
plt.plot(x,np.sin(x),'-',label=r'1st, second, third, a$_b$')
plt.plot(x,np.cos(x),'--',label=r'fourth, 5th, 5$_{fo}$, sixth')
plt.legend()
plt.show()
我希望标签在图例中对齐,因此得到如下结果:

1st     second     third       a$_b$    
fourth  5th        5$_{fo}$    sixth
有没有办法做到这一点


一个简单的选择是使用单空格字体,并用空格填充所需的空格

import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,10,100)
plt.plot(x,np.sin(x),'-', label='1st     second   third   a$_b$')
plt.plot(x,np.cos(x),'--',label='fourth  5th      5$_{fo}$      sixth')
plt.legend(prop={'family': 'DejaVu Sans Mono'})
plt.show()

是的,可能有办法。你试过什么?我找了很多,但是什么也没找到,但是。。。类似于latex表格环境的东西可能是可能的?可能是重复的我看了这个,但这并不是我想要的,我想think@DavidG如果这确实有助于解决问题,请在此处发布答案。我想这会对很多有类似问题的人有所帮助。嗯,这不是我想要的。我在寻找一个自动化的解决方案,我真的不想手工输入空格,也不想使用单空格字体(也希望使用latex公式)。在上面的评论中有一个类似问题的链接,您可以根据您的情况调整解决方案。这里的答案只是为了显示一种快速而肮脏的方式,以防链接的答案过于复杂而无法实现。如果您在“rcParams”中使用“text.usetex”,您对如何实现这一点有何想法?