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 без создания интерполированных значений? Я попробовал несколько подходов, но все не удалось. Я изменил figsize (failed), я изменил оси с помощью:
axs=plt.axes([.65, .6, 10, 10], facecolor='k',aspect='equal')
но в конечном итоге невозможно увеличить тепловую карту, чтобы сделать ее более ясной. Я действительно не хочу создавать пустые значения по оси x и использовать график для их интерполяции. Есть ли способ "увеличить масштаб" оси х и сделать график квадратным?
Я проверил следующие ссылки, но я не мог получить то, что могло бы помочь:
Как изменить интервал между тиками в matplotlib?
Как добавить пространство между метками и осями в matplotlib?
https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.set_aspect.html
Спасибо заранее всем :) Любая помощь очень ценится
Если вам нужен квадратный сюжет:
axs.imshow(z, interpolation=interp_method, cmap='viridis', extent= (x[0], x[-1], y[0], y[-1]), aspect="auto")
Обратите внимание, что это тот же код, что и ваш, просто imshow()
аргумент aspect="auto"
в imshow()
.
Здесь изображение: https://imgur.com/a/PsiwpqL
aspect
аргументомimshow
?