Можно ли отобразить 2D-массив в виде полярного графика с помощью Matplotlib imshow ()? - PullRequest
9 голосов
/ 23 июня 2011

Я новичок в matplotlib (и мне это нравится!), Но я разочарован. У меня есть полярная сетка, представленная в виде двумерного массива. (строки - радиальные сечения, столбцы - азимутальные сечения)

Мне удалось отобразить 2D-массив как прямоугольное изображение (R против тета), используя pyplot.imshow (), так и как полярный график, используя pyplot.pcolor (). Однако pcolor () медленнее медленнее для размера используемых мной массивов, поэтому я хочу иметь возможность отображать массив в виде полярной сетки с помощью imshow ().

Используя pcolor (), это так же просто, как установка polar = True для субплота. Есть ли способ отобразить 2D-массив как полярный график, используя imshow ()? без необходимости делать преобразования координат на весь массив? Заранее спасибо

1 Ответ

11 голосов
/ 23 июня 2011

После некоторых исследований я обнаружил функцию pcolormesh (), которая оказалась на значительно быстрее, чем с помощью pcolor () и сравнима со скоростью imshow ().

Вот мое решение:

import matplotlib.pyplot as plt
import numpy as np

#...some data processing

theta,rad = np.meshgrid(used_theta, used_rad) #rectangular plot of polar data
X = theta
Y = rad

fig = plt.figure()
ax = fig.add_subplot(111)
ax.pcolormesh(X, Y, data2D) #X,Y & data2D must all be same dimensions
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...