在.format()
绘图中使用matplotlib
时,我遇到一些问题:假设我有一个矩阵A = np.column_stack([[0, 1], [-1, 0]])
,并且必须在我的绘图中显示此矩阵。也可以根据我的需要更改此矩阵。因此,我使用了以下代码,但它给出了错误。您能告诉我如何执行此任务吗?当我尝试显示$2\hat{i}+5 \hat{j}$
之类的向量时,我也遇到类似的问题:
我尝试对矩阵进行以下操作:
A = np.column_stack([[0, 1], [-1, 0]])
matrix = r'$\left( \begin{array}{ll} {a11} & {a12} \\ {a21} & {a22} \end{array} \right)$'.format(a11=A[0][0], a12=A[0][1], a21=A[1][0], a22=A[1][1])
plt.title(matrix)
输出:
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-89-12cfe5180092> in <module>()
12
13 A = np.column_stack([[0, 1], [-1, 0]]) #Matrix
---> 14 title = r'$\left( \begin{array}{ll} {a11} & {a12} \\ {a21} & {a22} \end{array} \right)$'.format(a11=A[0][0], a12=A[0][1], a21=A[1][0], a22=A[1][1])
15
16 #Plotting:
KeyError: 'array'
我尝试对向量进行以下操作:
x = [2,3]
plt.text(2,3,'${a}\hat{i}+{b}\hat{j}$'.format(a= x[0], b=x[1]))
输出:
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-92-31281b09369d> in <module>()
32
33
---> 34 plt.text(2,3,'${a}\hat{i}+{b}\hat{j}$'.format(a= x[0], b=x[1]))
35
36 #plt.title(title, y = 1.03)
KeyError: 'i'
答案 0 :(得分:0)
我已使用您的第二个示例为简单说明问题提供了答案。
x = [2,3]
plt.text(2,3,'${a}\hat{i}+{b}\hat{j}$'.format(a= x[0], b=x[1]))
这将返回KeyError: 'i'
,因为尚未在{i}
语句中设置字符串中指定为.format()
的数组变量。如果仅将i
添加到您的.format()
语句中也是失败的,因为也未指定j
。
有关工作示例,请参见以下内容:
x = [2,3]
plt.text(2,3,'${a}\hat{i}+{b}\hat{j}$'.format(a= x[0], b=x[1], i="SOMETHING", j="SOMETHING"))
摘要:{}
语句中需要设置.format()
中的所有内容。