我想在pyplot标签中写一个数学表达式,在这个表达式中我想使用变量值。看起来应该是这样的
我认为这可以通过字符串格式化完成。但以下不起作用
values = np.array([0.123, 1.234])
plt.plot(x, y, label='best fit curve $y={0:.2f}x+{1:.2f}$'.format(values))
答案 0 :(得分:2)
要格式化的字符串中有两个占位符。但是您通过format
方法提供单个值
相反,您需要提供与占位符一样多的参数。在这种情况下,你有一个元组/值数组,你可以简单地解压缩它,.format(*values)
。
import numpy as np
import matplotlib.pyplot as plt
values = np.array([0.123, 1.234])
plt.plot([0], [1], label='best fit curve $y={0:.2f}x+{1:.2f}$'.format(*values))
plt.legend()
plt.show()
答案 1 :(得分:1)
如果你在值迭代上使用splat运算符,那么我猜它应该可以正常工作吗?
plt.plot(x, y, label='best fit curve $y={0:.2f}x+{1:.2f}$'.format(*values))