渐变四位数刻度

Gradient four figures scale

我有一个使用 matplotlib 和 imshow 的问题。我想在同一个图中绘制四个 "matrices",使用 imshow,我需要梯度在 [0, 1] 之间。我还需要使用以下公式对数据进行标准化:

data_norm = data * 2/400

到目前为止我有这个:

from matplotlib import mpl,pyplot
import numpy as np
zvals = np.loadtxt("sharedGradient.txt")

img = pyplot.imshow(zvals,interpolation='nearest')

pyplot.colorbar(img)
pyplot.show()

数据在 .txt 个文件中,但这是数据示例:

61 62 63 64 65 66 67 6 5 83 82 81 28 29 30 33 34 35 36 37 
60 13 12 11 10 9 8 7 4 3 2 7 27 76 31 32 69 42 41 38 
59 14 15 16 17 18 69 12 11 10 1 0 26 75 74 73 70 43 40 39 
58 57 56 41 40 19 70 71 72 73 4 3 25 79 133 72 71 44 61 62 
160 161 55 42 39 20 21 107 114 0 1 2 24 51 52 47 46 45 60 108 
62 61 54 43 38 37 22 35 38 37 36 35 23 50 49 48 57 58 59 0 
63 64 53 44 25 24 23 34 31 32 33 34 22 51 56 55 56 108 107 1 
203 65 52 45 26 31 24 33 30 33 34 20 21 52 53 54 55 109 106 2 
202 66 51 46 27 30 25 28 29 17 18 19 38 37 36 35 111 110 105 3 
156 199 50 47 28 29 26 27 28 16 30 54 50 51 52 34 112 103 104 4 
121 120 49 48 28 29 46 45 27 15 39 55 49 54 53 33 113 102 6 5 
114 113 112 109 27 30 31 12 13 14 40 41 46 55 31 32 120 101 7 8 
3 4 5 6 15 0 10 11 25 35 40 42 45 48 30 29 28 100 99 9 
2 1 0 3 2 1 2 77 32 33 34 45 46 57 67 68 27 26 25 10 
9 6 5 0 1 7 80 81 31 30 35 44 60 58 59 69 70 23 24 11 
10 2 3 4 5 6 79 82 83 29 36 43 42 41 60 65 66 22 21 12 
11 1 11 10 21 20 23 67 66 28 37 38 39 40 61 64 67 92 20 13 
12 0 14 15 20 70 7 6 26 27 80 77 76 73 62 63 68 91 19 14 
13 15 51 18 19 71 8 5 4 3 2 82 83 84 71 70 69 90 18 15 
14 14 13 12 11 10 9 128 129 0 1 146 147 85 86 87 88 89 17 16 

我的问题是我无法让渐变介于 [0, 1] 之间,而且我无法在同一张图中放置不同的绘图。希望有人能帮忙。

标准化数据后,梯度已经从 0 调整为 1 要分离 imshow 图,只需在图中添加子图:plt.subplot(行数、列数、图编号)

import matplotlib.pyplot as plt
import numpy as np
zvals = np.loadtxt("sharedGradient.txt")

zvals = zvals/200
plt.subplot(2,2,1)
img = plt.imshow(zvals,interpolation='nearest')
plt.colorbar(img)
plt.subplot(2,2,2)
img = plt.imshow(zvals)
plt.colorbar(img)
plt.subplot(2,2,3)
img = plt.imshow(zvals)
plt.colorbar(img)
plt.subplot(2,2,4)
img = plt.imshow(zvals)
plt.colorbar(img)
plt.show()

如果您还试图使轴的范围从 0 到 1,则使用 imshow()

中的 extent=(0,1,0,1)