如何从n x n矩阵生成等高线图?

时间:2011-09-11 02:01:58

标签: python matplotlib

我有一个名为o_potential的n x n矩阵,其中填充了一些值,并希望从中生成轮廓图。我尝试了几种方法但没有成功。这就是我现在所拥有的。

n = 20
x = arange(0,n-1)
y = arange(0,n-1)
plt.contourf(x, y, o_potential[x][y])
plt.show()

o_potential看起来像这样

o_potential = [[ -1.,          -1.,          -1.,          -1.,          -1.        ],
 [ 10.,           4.12244898,   2.7755102,    4.12244898,  10.        ],
 [ 10.,           5.7755102,    4.24489796,   5.7755102,   10.        ],
 [ 10.,           4.12244898,   2.7755102,    4.12244898,  10.        ],
 [ -1.,          -1.,          -1.,          -1.,          -1.        ]]

我收到以下错误消息:“用作索引的数组必须是整数(或布尔)类型。”

我昨天一直在努力解决这个问题。我尝试了几乎所有Google搜索结果,但无法解决问题。感谢您的帮助!

2 个答案:

答案 0 :(得分:5)

尝试:

n = 20
x = arange(n)
y = arange(n)
X, Y = meshgrid(x, y)
plt.contourf(X, Y, o_potential)
plt.show()

或只是

plt.contourf(o_potential)
plt.show()

很难确切地说出问题是什么,因为你没有显示o_potential,但上述内容可能会有效。

答案 1 :(得分:0)

您也可以尝试以下方法:

import matplotlib.pyplot as plt
plt.imshow(o_potential, cmap='viridis')