如何从n x n矩阵生成轮廓图?

3 投票
2 回答
9694 浏览
提问于 2025-04-17 02:00

我有一个 n x n 的矩阵,叫做 o_potential,里面填满了一些数值。我想从这个矩阵生成一个等高线图,但尝试了好几种方法都没有成功。这是我现在的代码。

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.        ]]

我遇到了一个错误信息:“作为索引的数组必须是整数(或布尔)类型。”

我从昨天开始就一直在为这个问题苦恼。我几乎查遍了所有的谷歌搜索结果,但还是没能解决这个问题。希望能得到你的帮助!

2 个回答

1

你也可以试试这个:

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

试试这个:

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,但上面的方式可能会有效。

撰写回答