Python 向x轴添加常量
我使用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轴添加常量,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
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()