如何在Python中使用Colorbar和X,Y中的高分辨率值创建热图?

如何在Python中使用Colorbar和X,Y中的高分辨率值创建热图?,python,dictionary,heat,Python,Dictionary,Heat,我有python中的下一个代码来使用MatPlotLib生成三维图形,但是我需要您的帮助来更改我的代码,以便能够创建热图而不是三维图形 我的实际代码: 数据源--> data.dat包含: (第1列为“x”, 第二栏是“y” 第三列是“z”) 此文件有3231个类似的行。。。 代码: 所以。。。当“z”列是颜色深度时,我想使用相同的数据源生成一个热图,并像这个3D图一样增加X,Y分辨率 你能帮我吗? 本站点中的其他热图示例是很好的参考,但我不清楚使用数据源(data.dat)在实际代码中需要做哪

我有python中的下一个代码来使用MatPlotLib生成三维图形,但是我需要您的帮助来更改我的代码,以便能够创建热图而不是三维图形

我的实际代码:

数据源--> data.dat包含:

(第1列为“x”, 第二栏是“y” 第三列是“z”)

此文件有3231个类似的行。。。 代码:

所以。。。当“z”列是颜色深度时,我想使用相同的数据源生成一个热图,并像这个3D图一样增加X,Y分辨率

你能帮我吗? 本站点中的其他热图示例是很好的参考,但我不清楚使用数据源(data.dat)在实际代码中需要做哪些更改

大多数情况下,此代码将脱机执行

我更喜欢像MatPlotLib这样的免费库,或者您知道的其他免费解决方案


非常感谢

您需要将[-25,25]z轴值映射到RGB值。请尝试,找到具有所需功能的内容,研究示例代码,尝试使其适应您的问题,然后访问。
0.00    0.00    0.38
1.11    0.00    0.38
.
.
.
95.00    1.80    0.38
.
.
.
**f_name='/home/data.dat'
data=np.loadtxt(f_name, delimiter='\t', unpack=True)
datos=np.array(data.tolist())
x = datos[0,:]
y = datos[1,:]
z = datos[2,:]
xi = np.linspace(min(x), max(x))
yi = np.linspace(min(y), max(y))
X, Y = np.meshgrid(xi, yi)
Z = griddata(x, y, z, xi, yi)
Z[np.isnan(Z)] = 0
fig = plt.figure()
ax = Axes3D(fig)
surf= ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet_r ,     linewidth=1, antialiased=True)
ax.set_zlim(-25, 25)
ax.set_xlim(0, 100)
ax.set_ylim(0, 102)
#more resolution:
start_x, end_x = ax.get_xlim()
ax.xaxis.set_ticks(np.arange(start_x, end_x, 0.25))
ax.xaxis.set_major_formatter(FormatStrFormatter('%0.1f'))
start_y, end_y = ax.get_ylim()
ax.yaxis.set_ticks(np.arange(start_y, end_y, 0.25))
ax.yaxis.set_major_formatter(FormatStrFormatter('%0.1f'))
#ColorBar:
fig.colorbar(surf, shrink=0.5, aspect=5)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.set_title('3D Figure')
fig.savefig(pathfilename, dpi=300)**