Matplotlib версия 1.5.3 против 2.2.2 imshow на полярной оси - PullRequest
0 голосов
/ 13 июня 2018

Я пытаюсь построить график, используя imshow в полярном графике.Это работало в matplotlib версии 1.5.3, но больше не работает в версии 2.2.2.Есть ли альтернативный способ использовать это?Я знаю, что могу использовать pcolormesh или contourf, чтобы сделать аналогичную вещь, но я бы предпочел использовать imshow.Ниже приведен пример:

import numpy as np
import matplotlib
import matplotlib.pyplot as plt

def main():
    print matplotlib.__version__
    data = np.random.randint(1, 100, (100, 100))

    fig = plt.figure()
    ax = fig.add_subplot(111, polar=True)
    ax.imshow(data, extent=[0, 2*np.pi, 0, 90])
    plt.show()

if __name__ == '__main__':
    main()

Версия 1.5.3 Результат: Version 1.5.3 Result: Версия 2.2.2 Результат: Version 2.2.2 Result:

1 Ответ

0 голосов
/ 13 июня 2018

Вы можете создать две оси, одну декартову ось на заднем плане, чтобы показать ваше изображение, и полярные оси на переднем плане, чтобы ... быть полярными осями, как вам нужно.

import numpy as np
import matplotlib.pyplot as plt

data = plt.imread("https://matplotlib.org/devdocs/_images/sphx_glr_firefox_001.png")

fig = plt.figure()
#create axes in the background to show cartesian image
ax0 = fig.add_subplot(111)
ax0.imshow(data)
ax0.axis("off")

# create polar axes in the foreground and remove its background
# to see through
ax = fig.add_subplot(111, polar=True, label="polar")
ax.set_facecolor("None")

plt.show()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...