Python 向x轴添加常量

Python 向x轴添加常量,python,matplotlib,axis,Python,Matplotlib,Axis,我使用python并希望在x轴上绘制1900到2000的热图。我有一个二维函数,比如f(t,x),其中t在1900到2000之间。然后我定义g(x)=[f(t,x)表示范围内的t(19002000)],并通过z=numpy.array([g(x)表示范围内的x(50)]将所有内容放在一个数组中。然后我用pylab.color(z)绘制了热图,但是我失去了对年份的依赖,因为它现在在一个从零开始的数组中。x轴从0到100。如何将1900添加到x轴,而不是添加到标签中,从而使范围变为1900-2000

我使用python并希望在x轴上绘制1900到2000的热图。我有一个二维函数,比如f(t,x),其中t在1900到2000之间。然后我定义g(x)=[f(t,x)表示范围内的t(19002000)],并通过z=numpy.array([g(x)表示范围内的x(50)]将所有内容放在一个数组中。然后我用pylab.color(z)绘制了热图,但是我失去了对年份的依赖,因为它现在在一个从零开始的数组中。x轴从0到100。如何将1900添加到x轴,而不是添加到标签中,从而使范围变为1900-2000。提前谢谢

如果您使用的是
pcolormesh
(或
pcolor
,但
pcolormesh
更快),则需要传入显式
x
y
数组以及
z
数组

如果您使用的是
imshow
,则需要使用
区段
kwarg

作为使用
pcolormesh
pcolor
的示例:

import numpy as np
import matplotlib.pyplot as plt

z = np.arange(40).reshape(4, 10)
x = np.linspace(1900, 2000, 10)
y = np.linspace(20, 50, 4)

fig, ax = plt.subplots()
ax.pcolormesh(x, y, z, cmap='gist_earth')
plt.show()

作为使用
imshow
的示例(请注意,您需要使用
aspect='auto'
并使
imshow
pcolormesh
精确匹配):


请分享一些代码来说明您正在做什么。一个工作样本也会有帮助。你能提供一个吗?这足够好吗?现在我在右边和顶部又有了空白。在前一种情况下(x轴上有0-100),我用plt.gca().set_xlim((0100))将其擦除,但是在这种情况下,这不起作用。@Henry-通常,您会使用
ax.axis('tight')
将轴限制设置为数据范围。不过,根据你正在做的事情的具体情况,用其他方式做可能更有意义。例如,
ax.margins(某些百分比)
为限制添加一点填充,
ax.set(xlim=[xmin,xmax],ylim=[ymin,ymax])
手动设置限制,
ax.axis('image')
使用类似轴限制的
imshow
,以及其他一些限制。感谢您的帮助!
import numpy as np
import matplotlib.pyplot as plt

z = np.arange(40).reshape(4, 10)
x = np.linspace(1900, 2000, 10)
y = np.linspace(20, 50, 4)

fig, ax = plt.subplots()
ax.imshow(z, cmap='gist_earth', interpolation='nearest', origin='lower',
          extent=[x.min(), x.max(), y.min(), y.max()])
plt.show()