向x轴添加常量

2024-04-27 02:54:14 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 函数numpy内容定义颜色绘制标签数组
1条回答
网友
1楼 · 发布于 2024-04-27 02:54:14

如果使用pcolormesh(或pcolor,但pcolormesh更快),则需要传入显式xy数组以及z数组。你知道吗

如果您使用的是imshow,则需要使用extentkwarg。你知道吗

作为使用pcolormeshpcolor的示例:

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()

enter image description here

作为使用imshow的示例(请注意,您还需要使用aspect='auto',以使imshowpcolormesh完全匹配):

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()

enter image description here

相关问题 更多 >