在plt.text函数的文本中传递值

时间:2015-07-07 03:17:32

标签: python matplotlib

以下是抽象的问题,每次lst都不同,所以我想自动完成

import matplotlib.pyplot as plt
import numpy as np
fig=plt.figure()
fig.set_size_inches(8,4)
lst=np.array ([0.1235,0.2322,0.3300]) 
#how can I directly pass these value to plt.text, without manually input
plt.text(0.05,0.6,r'a=0.124,  b=0.232,  c=0.330',fontsize=18)
plt.show()

1 个答案:

答案 0 :(得分:4)

您可以使用str.format()并将列表作为参数传递给它(并使用{}中的索引来确定元素的位置和格式,例如 -

plt.text(0.05,0.6,r'a={0:.3f}, b={1:.3f}, c={2:.3f}'.format(*lst),fontsize=18)

:之前的数字是需要在那里替换的元素的索引,.3f表示它将在小数点后有3个位置,而f是浮点数。

请注意,上面不会对数字进行舍入(a将打印为 - a=0.123),如果你想要数字舍入,你可以使用带有圆函数的列表推导 -

plt.text(0.05,0.6,r'a={0:.3f}, b={1:.3f}, c={2:.3f}'.format(*[round(x,3) for x in lst]),fontsize=18)