如何从n x n矩阵生成轮廓图?
我有一个 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,但上面的方式可能会有效。