Как добавить метки осей на графики imshow в python? - PullRequest
0 голосов
/ 09 мая 2019

Я скопировал с этого веб-сайта (и упростил) следующий код для построения результата функции с двумя переменными, используя imshow.

from numpy import exp,arange
from pylab import meshgrid,cm,imshow,contour,clabel,colorbar,axis,title,show

# the function that I'm going to plot
def z_func(x,y):
return (x+y**2)

x = arange(-3.0,3.0,0.1)
y = arange(-3.0,3.0,0.1)
X,Y = meshgrid(x, y) # grid of point
Z = z_func(X, Y) # evaluation of the function on the grid

im = imshow(Z,cmap=cm.RdBu) # drawing the function

colorbar(im) # adding the colobar on the right
show()

Plot without axis labels

Как добавить метки оси (например, 'x' и 'y' или 'var1 и 'var2') на график?В RI будет использоваться xlab = 'x' в пределах (большей части) функции построения графиков.

Я пытался im.ylabel ('y') с

AttributeError: у объекта 'AxesImage' нет атрибута 'ylabel'

Кроме этого, я нашел только , как удалить метки оси , но не как их добавить.

Бонусный вопрос: как установить диапазон тиков от -3 до 3, а не от 0 до 60?

1 Ответ

2 голосов
/ 09 мая 2019

Чтобы указать метки осей:

Что касается вашего бонусного вопроса, рассмотрим extent kwarg .(Спасибо @Jona).

Кроме того, рассмотрим абсолютный импорт в соответствии с рекомендациями PEP 8 - Руководство по стилю для кода Python :

Рекомендуется абсолютный импорт, поскольку они обычно более читабельны и имеют тенденцию к лучшему поведению (или, по крайней мере, дают лучшие сообщения об ошибках), если система импорта настроена неправильно (например, когда каталог внутри пакета заканчивается в sys.path)


import matplotlib.pyplot as plt
import numpy as np

# the function that I'm going to plot
def z_func(x,y):
    return (x+y**2)

x = np.arange(-3.0,3.0,0.1)
y = np.arange(-3.0,3.0,0.1)
X,Y = np.meshgrid(x, y) # grid of point
Z = z_func(X, Y) # evaluation of the function on the grid

plt.xlabel('x axis')
plt.ylabel('y axis')

im = plt.imshow(Z,cmap=plt.cm.RdBu, extent=[-3, 3, -3, 3]) # drawing the function

plt.colorbar(im) # adding the colobar on the right
plt.show()

и вы получите:

enter image description here

...