Matplotlib Plot图例中的制表符对齐方式

时间:2018-01-11 16:33:26

标签: 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()
plt.show()

我希望标签在图例中对齐,所以请输入:

1st     second     third       a$_b$    
fourth  5th        5$_{fo}$    sixth

有没有办法做到这一点?

plot

1 个答案:

答案 0 :(得分:2)

一个简单的选择是使用等宽字体并用空格填充所需的空间。

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()

enter image description here