Как разложить значения x с неравномерной осью в matplotlib? - PullRequest
0 голосов
/ 29 августа 2018
from matplotlib import pyplot as plt
import numpy as np

x = np.linspace(448312,497812,100)
y = np.linspace(7188379,7986879,1598)
z = np.random.rand(100,1598)
interp_method = "sinc"
fig, axs = plt.subplots()
axs.imshow(z, interpolation=interp_method, cmap='viridis', extent= (x[0], x[-1], y[0], y[-1]))
axs.set_title(str(interp_method))
plt.show()

# the image is on https://imgur.com/ZYIkqAw

Предыдущий код создает тепловую карту, которая не совсем читабельна, есть ли способ «развернуть» ось x без создания интерполированных значений? Я попробовал несколько подходов, но все потерпели неудачу, я изменил размер (неудачу), я изменил оси с помощью:

axs=plt.axes([.65, .6,  10, 10], facecolor='k',aspect='equal')

но в конечном итоге невозможно расширить тепловую карту настолько, чтобы она стала понятнее. Я действительно не хочу создавать пустые значения на оси х и использовать график для их интерполяции. Есть ли способ "увеличить" ось х и сделать график квадратным?

Я тщательно проверил следующие ссылки, но не смог найти то, что могло бы помочь:

Как изменить интервал между галочками в matplotlib?

Как добавить пробел между метками и осями в matplotlib?

https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.set_aspect.html

Заранее всем спасибо :) Любая помощь очень ценится

1 Ответ

0 голосов
/ 29 августа 2018

Если вы хотите квадратный участок:

axs.imshow(z, interpolation=interp_method, cmap='viridis', extent= (x[0], x[-1], y[0], y[-1]), aspect=“auto”)

Обратите внимание, что это тот же код, что и у вас, только что добавили аргумент aspect=“auto” к imshow().

Вот изображение: https://imgur.com/a/PsiwpqL

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