是否有任何类似R的功能(热图(x,scale =“row”,..)来缩放Matplotlib中行方向的值?
- 当前代码---
im = ax_heatmap.imshow(z, aspect='auto', cmap=cmap, interpolation='nearest')
有一篇文章提到使用 vmin和vmax 参数进行缩放,但没有讨论如何在特定方向(行或列)进行缩放。
答案 0 :(得分:1)
你必须做好自我规范化。如果绘图库为您完成,那么在所有情况下都可以正确使用颜色条。
import numpy as np
import matplotlib.pyplot as plt
shifts = np.linspace(1, 50, 25)[:, np.newaxis]
x = np.arange(50)[np.newaxis, :]
data = np.exp(-(x - shifts)**2 / 50) * shifts
fig, (ax1, ax2) = plt.subplots(2, 1)
im1 = ax1.imshow(data, interpolation='none', cmap='viridis')
fig.colorbar(im1, ax=ax1, label='raw values')
norm_data = (data - np.min(data, axis=1)[:, np.newaxis]) / np.ptp(data, axis=1)[:, np.newaxis]
im2 = ax2.imshow(norm_data, interpolation='none', cmap='viridis')
fig.colorbar(im2, ax=ax2, label='normalized by row')