Matplotlib imshow中的打印未正确获取x值
我有以下2d绘图代码。我从文件中读取数据并附加它们。在我将它们转换为数组之后。它绘图,但不能正确获取θu min和θu mix。作为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
输出看起来是正确的。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()