Как создать контурный график из матрицы n x n? - PullRequest
1 голос
/ 11 сентября 2011

У меня есть матрица 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.        ]]

Я получаю следующее сообщение об ошибке: «Массивы, используемые в качестве индексов, должны иметь целочисленный (или логический) тип.»

Я боролся с этим со вчерашнего дня. Я попробовал почти все результаты Google, но не смог решить проблему. Ваша помощь приветствуется!

Ответы [ 2 ]

5 голосов
/ 11 сентября 2011

Попробуйте:

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, но вышеописанное, скорее всего, сработает.

0 голосов
/ 28 февраля 2019

Вы также можете попробовать это:

import matplotlib.pyplot as plt
plt.imshow(o_potential, cmap='viridis')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...