Matplotlib imshow中的打印未正确获取x值

Matplotlib imshow中的打印未正确获取x值,matplotlib,imshow,Matplotlib,Imshow,我有以下2d绘图代码。我从文件中读取数据并附加它们。在我将它们转换为数组之后。它绘图,但不能正确获取θu min和θu mix。作为x值,它只获取所需值的位置,而不获取值本身。 请建议 谢谢你的帮助。 输出看起来是正确的。x从theta_min到theta_max。您希望看到什么?谢谢您的回复。但问题是。。虽然X轴显示了正确的θ值,但在图中,我没有得到关于θ的相应强度值。图中绘制的值是数组第1到第10个位置的值。我希望我清楚我的疑问,例如,如果我使用extent=(x[200],x[-1],y

我有以下2d绘图代码。我从文件中读取数据并附加它们。在我将它们转换为数组之后。它绘图,但不能正确获取θu min和θu mix。作为x值,它只获取所需值的位置,而不获取值本身。 请建议

谢谢你的帮助。


输出看起来是正确的。x从theta_min到theta_max。您希望看到什么?谢谢您的回复。但问题是。。虽然X轴显示了正确的θ值,但在图中,我没有得到关于θ的相应强度值。图中绘制的值是数组第1到第10个位置的值。我希望我清楚我的疑问,例如,如果我使用extent=(x[200],x[-1],y[0],y[-1]),不幸的是,这并不清楚。沿x轴的图像显示了预期的所有值。例如,如果我使用范围=(x[0],x[-1],y[0],y[-1]),它将给出完整θ范围的正确绘图。我得到这个图像,但是如果我想限制θ范围,那么问题就出现了。例如,如果我把区段=(x[500],x[-1],y[0],y[-1])放在一起,那么绘图只是移动,而不是给出确切的范围。我得到下面的图片我希望这有助于谢谢你
import numpy as np
import matplotlib.pylab as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable

Filename='DS_MNASP_12_RT-483K_'  
FileExtension= '.dat' 
FileNumberBegin =1 
FileNumberEnd =10 
theta_min=1
theta_max=10
RT = 290 
HT=523 


Filenames = []
    for i  in range(FileNumberBegin,FileNumberEnd + 1):
    Filenames.append(Filename + (4-len(str(i)))*'0' + str(i) + 'p' + 
                 FileExtension)

data=[]
for j in Filenames:
    data.append(np.genfromtxt(j, dtype='float', skip_header=41)) 
d=np.array(data)

ylabel = '$Temperature\/(k)$'
xlabel = '$2\/theta (degrees)$'



x = d[0,theta_min:theta_max,0] 
y = (np.arange(RT,HT+1, dtype='float64'))
z = d[:,theta_min:theta_max,1] 

X,Y = plt.meshgrid(x, y) 
Z = z 


xmin = theta_min
xmax = theta_max


im = plt.imshow(Z, origin='lower', aspect='auto', extent=[xmin, xmax, y[0], 
    y[-1]]) 

ax = plt.gca()
ax.set_autoscale_on(False)
ax.set_xlabel(xlabel, fontsize = 30)
ax.set_ylabel(ylabel, fontsize = 30)
ax.tick_params(labelsize=20, pad =7, direction='out', width=2, top='off', 
right='off')
plt.tight_layout()
plt.show()