如何在python中将轴标签添加到imshow图中?

时间:2019-05-09 14:59:25

标签: python matplotlib axis-labels

我从this website复制并简化了以下代码,以使用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')?在R中,我会在大部分绘图功能中使用xlab = 'x'

我尝试了

im.ylabel('y')
  

AttributeError:“ AxesImage”对象没有属性“ ylabel”

除此之外,我仅找到how to remove the axis labels,但没有找到添加方法。

奖金问题:如何使刻度线从-33,而不是从060

1 个答案:

答案 0 :(得分:2)

要指定轴标签:

关于奖金问题,请考虑extent kwarg。 (感谢@Jona)。

此外,请考虑按PEP 8 -- Style Guide for Python Code的建议进行绝对导入:

  

建议绝对导入,因为它们通常更易读   并表现得更好(或至少给出更好的错误信息)   如果导入系统配置不正确(例如   包中的目录最终位于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