获取文献中的colorbar并用于NCL和Python绘图

Colorba archive

Posted by 吴锴 on April 12, 2023

方法1. 通过以下MATLAB代码实现.

首先截图论文中的colorbar并另存为cbar-paper.jpg文件

然后在MATLAB中执行以下代码

imread('cbar-paper.jpg');   %得到了一个23*189*3的矩阵,其中23是宽(高),189是长,3是RGB的维数
color=ans(11,:,:);    %得到中间一条的颜色信息
colorfinal=reshape(color,189,3);   %  最后得到中间一条每个点的RGB
%colormap(double(colorfinal)/255)    %  需要转化成双精度,0-1之间的数值
%colorbar
%将colorbar保存以后使用
colorsave=colorfinal
dlmwrite('sample.txt',colorfinal,'delimiter',' ');

该方法生成的txt文件可直接用于Python的matplotlib中。用法如下:

# get gamap's WhGrYlRd color scheme from GEOS-Chem website
from matplotlib.colors import ListedColormap
WhGrYlRd_scheme = np.genfromtxt('./sample.txt', delimiter=' ')
WhGrYlRd = ListedColormap(WhGrYlRd_scheme/255.0)
# Then you can use the txt file as colorbar for plots
dr_surf.plot(cmap=WhGrYlRd, vmin=0, vmax=100)

WhGrYlRd

而想要将该colorbar应用到NCL,还需要将文件后缀修改为.rgb,然后在文件头加上颜色的数量如下:

ncolors= 189
# r g b

并上传到NCL-6.6.2/lib/ncarg/colormaps/路径下 即可在NCL脚本中调用

方法2. 通过气象家园的调色盘实现

调色盘输出格式中可选NCL等3种文件.因此NCL的操作上同。

当应用于python时,需要先输出为NCL的格式,然后将后缀名改为txt并删除一开始的2行,即可用于Python中。

3. Python的colorbar-txt格式

255 255 255
252 254 255
249 254 255
246 253 255
244 252 255
241 252 255
238 251 255
235 250 255
232 250 255
229 249 255
226 248 255
223 248 255
221 247 255
218 246 255
215 246 255
212 245 255
209 245 255
206 244 255
203 243 255
200 243 255
198 242 255
195 241 255
192 241 255
189 240 255
186 239 255
183 239 255
180 238 255
177 237 255
175 237 255
172 236 255
169 235 255
166 235 255
163 234 255
160 233 255
157 233 255
154 232 255
152 231 255
149 231 255
146 230 255
143 229 255
140 229 255
137 228 255
134 228 255
131 227 255
129 226 255
126 226 255
123 225 255
120 224 255
117 224 255
114 223 255
111 222 255
108 222 255
106 221 255
103 220 255
100 220 255
97 219 255
94 218 255
91 218 255
88 217 255
86 216 255
83 216 255
80 215 255
77 214 255
74 214 255
73 213 255
75 214 251
78 215 247
81 215 243
84 216 239
87 217 235
90 217 231
93 218 227
96 219 223
99 219 219
101 220 215
104 221 211
107 221 207
110 222 203
113 223 199
116 223 195
119 224 191
122 225 187
125 225 183
127 226 179
130 227 175
133 227 171
136 228 167
139 229 162
142 229 158
145 230 154
148 231 150
150 231 146
153 232 142
156 233 138
159 233 134
162 234 130
165 235 126
168 235 122
171 236 118
174 237 114
176 237 110
179 238 106
182 239 102
185 239 98
188 240 94
191 241 90
194 241 86
197 242 82
200 243 78
202 243 74
205 244 70
208 245 66
211 245 62
214 246 58
217 247 54
220 247 50
223 248 46
225 249 42
228 249 38
231 250 34
234 251 30
237 251 26
240 252 22
243 253 18
246 253 14
249 254 10
251 255 6
254 255 2
255 254 0
255 250 0
255 246 0
255 242 0
255 238 0
255 234 0
255 230 0
255 226 0
255 222 0
255 218 0
255 214 0
255 210 0
255 206 0
255 202 0
255 198 0
255 194 0
255 190 0
255 186 0
255 182 0
255 178 0
255 174 0
255 170 0
255 166 0
255 161 0
255 157 0
255 153 0
255 149 0
255 145 0
255 141 0
255 137 0
255 133 0
255 129 0
255 125 0
255 121 0
255 117 0
255 113 0
255 109 0
255 105 0
255 101 0
255 97 0
255 93 0
255 89 0
255 85 0
255 81 0
255 77 0
255 73 0
255 69 0
255 65 0
255 61 0
255 57 0
255 53 0
255 49 0
255 45 0
255 41 0
255 37 0
255 33 0
255 29 0
255 25 0
255 21 0
255 17 0
255 13 0
255 9 0
255 5 0
255 1 0
254 0 0
251 0 0
248 0 0
246 0 0
243 0 0
240 0 0
238 0 0
235 0 0
232 0 0
230 0 0
227 0 0
224 0 0
222 0 0
219 0 0
216 0 0
214 0 0
211 0 0
208 0 0
206 0 0
203 0 0
200 0 0
198 0 0
195 0 0
192 0 0
189 0 0
187 0 0
184 0 0
181 0 0
179 0 0
176 0 0
173 0 0
171 0 0
168 0 0
165 0 0
163 0 0
160 0 0
157 0 0
155 0 0
152 0 0
149 0 0
147 0 0
144 0 0
141 0 0
139 0 0
136 0 0
133 0 0
131 0 0
128 0 0
125 0 0
123 0 0
120 0 0
117 0 0
114 0 0
112 0 0
109 0 0
106 0 0
104 0 0
101 0 0
98 0 0
96 0 0
93 0 0
90 0 0
88 0 0
85 0 0

4. NCL所用的colorbar格式-rgb文件

ncolors= 189
# r g b
54 73 132
50 69 137
55 72 154
57 77 164
55 77 163
53 79 163
57 86 162
57 91 163
58 91 170
58 93 174
59 96 176
61 98 176
63 101 172
65 104 171
67 106 175
68 108 177
68 111 180
70 112 184
71 115 186
73 117 188
74 119 187
74 121 189
75 124 191
77 128 194
77 130 196
77 135 199
78 139 202
78 144 205
78 147 206
78 150 208
81 153 211
80 157 213
79 161 217
78 165 219
79 166 220
80 171 224
83 177 231
80 177 230
79 180 232
83 189 239
82 190 239
80 192 240
80 195 242
82 198 245
83 202 245
85 204 247
84 205 248
87 204 247
94 205 248
98 206 245
103 207 244
107 207 241
112 207 239
114 208 236
119 209 236
122 209 236
127 213 238
128 213 234
130 212 233
131 212 229
133 212 225
134 211 221
135 209 218
136 209 215
138 210 209
138 209 205
139 208 205
139 209 201
141 209 198
141 209 194
143 208 188
144 208 184
145 208 179
147 208 175
149 209 171
152 210 169
154 209 167
155 211 164
158 211 165
159 211 162
163 213 164
165 213 161
167 214 160
171 216 159
173 217 158
177 218 158
179 219 157
184 220 159
186 220 159
190 220 160
193 221 160
197 223 158
201 223 158
202 225 157
204 225 156
206 226 154
209 225 152
213 227 152
214 228 151
214 228 149
215 228 149
216 229 147
218 230 144
218 231 141
222 231 140
222 232 136
225 231 133
226 232 132
230 232 131
231 234 131
233 234 130
236 235 127
237 235 124
239 233 121
240 232 121
241 229 119
243 227 116
244 223 114
244 222 113
244 220 112
246 218 109
246 216 106
245 213 104
246 210 98
247 207 96
249 206 94
251 205 94
254 203 94
251 199 90
253 196 89
252 193 89
253 190 87
252 187 87
253 185 86
255 182 87
253 180 85
252 179 84
252 179 84
253 179 84
252 178 83
251 175 81
252 173 80
251 170 78
252 169 77
249 168 77
249 168 77
249 168 77
247 166 75
247 163 73
245 161 71
246 162 74
247 163 75
247 163 77
248 163 80
248 166 84
249 166 88
249 167 91
250 168 94
250 170 97
251 171 100
251 174 104
250 176 105
252 177 110
252 178 113
251 180 118
251 181 121
251 182 125
249 184 126
248 185 131
248 188 134
245 190 136
249 197 147
250 199 154
245 198 156
253 205 167
254 210 175
251 213 177
251 216 184
254 219 191
254 223 195
254 226 204
255 230 210
254 235 221
255 238 228
255 242 234
253 244 239
255 249 246
217 213 210
94 90 91