以下是抽象的问题,每次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()
答案 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)