【发布时间】:2020-11-04 18:03:27
【问题描述】:
我想从 hdf5 文件中生成热图,其中强度是二维矩阵,x_range 和 z_range 是轴的范围。
import h5py
import numpy as np
import pandas as pd
import seaborn as sb
import matplotlib as plt
#Data Aquisition
file = h5py.File('scan.h5', 'r')
intensity = file.get('intensity')
intensity = np.array(intensity)
x_range = file.get('x range')
x_range = np.array(x_range)
z_range = file.get('z range')
z_range = np.array(z_range)
现在我尝试通过以下方式使用 pandas 创建数据透视表:
#Pivot Table
df = pd.DataFrame({'intensity': intensity, 'x_range': x_range, 'z_range': z_range})
result= df.pivot(index= 'z_range', columns= 'x_range', values= 'intensity')
这里出现的问题是强度必须是一维的,而强度是一个矩阵。 绘图由以下人员完成:
#Ploting
heat_map = sb.heatmap(result, cmap="Spectral_r", cbar_kws={'label': 'Countrate [arb. units]'})
plt.xlabel("x direction [µm]")
plt.ylabel("z direction [µm]")
plt.show()
此外,我希望原点位于热图的左下角。
【问题讨论】:
标签: pandas numpy seaborn heatmap hdf5