在Matplotlib中格式化标题

时间:2013-09-05 10:33:12

标签: python matplotlib title

我有以下python代码:

def plot_only_rel():
    filenames = find_csv_filenames(path)
    for name in filenames:
        sep_names = name.split('_')
        Name = 'Name='+sep_names[0]
        Test = 'Test='+sep_names[2]
        Date = 'Date='+str(sep_names[5])+' '+str(sep_names[4])+' '+str(sep_names[3])
    plt.figure()
    plt.plot(atb_mat_2)
    plt.title((Name, Test, Date))

然而,当我在我的身材上打印标题时,它会以

格式出现
  

(u'Name = X',u'Test = Ground','Date = 8 3 2012')

我有问题: 为什么我得到'你'?我怎么摆脱它和括号和引号? 当我使用suptitle时也会发生这种情况。

感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

plt.title收到一个字符串作为参数,你传入一个元组(Name, Test, Date)。因为它需要一个字符串,所以它尝试使用元组的__str__方法将其转换为字符串,这样就可以获得输出。你可能想做类似的事情:

plat.title('{0} {1}, {2}'.format(Name, Test, Date))

答案 1 :(得分:0)

怎么样:

plt.title(', '.join(Name,Test,Date))

由于您将标题作为数组提供,因此它显示了数组的表示形式(实际是元组)。 u告诉您它是unicode字符串。

您还可以使用格式更好地指定格式:

plt.title('{0}, {1}, {2}'.format(Name, Test, Date))

答案 2 :(得分:0)

在Python> 3.6中,您甚至可以使用f字符串来简化格式设置:

del my_list[id]