a 2D version
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

302 lines
5.7 KiB

4 years ago
function map = coolwarm(m)
%COOLWARM cool-warm color map
% COOLWARM(M) returns an M-by-3 matrix containing a colormap with cool-to-warm
% colors, as commonly used in Paraview.
% COOLWARM, by itself, is the same length as the current colormap.
%
% For example, to reset the colormap of the current figure:
%
% colormap(coolwarm)
%
% Colormap is based on the colors used by the freeware program Paraview.
% The color table used here is CoolWarmUChar33.csv, from
% http://www.sandia.gov/~kmorel/documents/ColorMaps/
% Reference: Moreland, Kenneth, 2009, Diverging Color Maps for Scientific
% Visualization, in Proceedings of the 5th International Symposium on
% Visual Computing.
% The Matlab code is after haxby.m by Kelsey Jordahl, Marymount Manhattan
% College.
%
% See also HSV, GRAY, PINK, COOL, BONE, COPPER, FLAG, HOT
% COLORMAP, RGBPLOT, HAXBY.
% Mark Brandon
% Yale University
% Time-stamp: <Aug 20 2012>
%% Check inputs
narginchk(0,1);
if nargin == 1
validateattributes(m,{'numeric'},{'numel',1});
end
%% Begin Function
if nargin < 1, m = size(get(gcf,'colormap'),1); end
c=[59 76 192;
60 78 194;
61 80 195;
62 81 197;
63 83 198;
64 85 200;
66 87 201;
67 88 203;
68 90 204;
69 92 206;
70 93 207;
71 95 209;
73 97 210;
74 99 211;
75 100 213;
76 102 214;
77 104 215;
79 105 217;
80 107 218;
81 109 219;
82 110 221;
84 112 222;
85 114 223;
86 115 224;
87 117 225;
89 119 226;
90 120 228;
91 122 229;
93 123 230;
94 125 231;
95 127 232;
96 128 233;
98 130 234;
99 131 235;
100 133 236;
102 135 237;
103 136 238;
104 138 239;
106 139 239;
107 141 240;
108 142 241;
110 144 242;
111 145 243;
112 147 243;
114 148 244;
115 150 245;
116 151 246;
118 153 246;
119 154 247;
120 156 247;
122 157 248;
123 158 249;
124 160 249;
126 161 250;
127 163 250;
129 164 251;
130 165 251;
131 167 252;
133 168 252;
134 169 252;
135 171 253;
137 172 253;
138 173 253;
140 174 254;
141 176 254;
142 177 254;
144 178 254;
145 179 254;
147 181 255;
148 182 255;
149 183 255;
151 184 255;
152 185 255;
153 186 255;
155 187 255;
156 188 255;
158 190 255;
159 191 255;
160 192 255;
162 193 255;
163 194 255;
164 195 254;
166 196 254;
167 197 254;
168 198 254;
170 199 253;
171 199 253;
172 200 253;
174 201 253;
175 202 252;
176 203 252;
178 204 251;
179 205 251;
180 205 251;
182 206 250;
183 207 250;
184 208 249;
185 208 248;
187 209 248;
188 210 247;
189 210 247;
190 211 246;
192 212 245;
193 212 245;
194 213 244;
195 213 243;
197 214 243;
198 214 242;
199 215 241;
200 215 240;
201 216 239;
203 216 238;
204 217 238;
205 217 237;
206 217 236;
207 218 235;
208 218 234;
209 219 233;
210 219 232;
211 219 231;
213 219 230;
214 220 229;
215 220 228;
216 220 227;
217 220 225;
218 220 224;
219 220 223;
220 221 222;
221 221 221;
222 220 219;
223 220 218;
224 219 216;
225 219 215;
226 218 214;
227 218 212;
228 217 211;
229 216 209;
230 216 208;
231 215 206;
232 215 205;
232 214 203;
233 213 202;
234 212 200;
235 212 199;
236 211 197;
236 210 196;
237 209 194;
238 209 193;
238 208 191;
239 207 190;
240 206 188;
240 205 187;
241 204 185;
241 203 184;
242 202 182;
242 201 181;
243 200 179;
243 199 178;
244 198 176;
244 197 174;
245 196 173;
245 195 171;
245 194 170;
245 193 168;
246 192 167;
246 191 165;
246 190 163;
246 188 162;
247 187 160;
247 186 159;
247 185 157;
247 184 156;
247 182 154;
247 181 152;
247 180 151;
247 178 149;
247 177 148;
247 176 146;
247 174 145;
247 173 143;
247 172 141;
247 170 140;
247 169 138;
247 167 137;
247 166 135;
246 164 134;
246 163 132;
246 161 131;
246 160 129;
245 158 127;
245 157 126;
245 155 124;
244 154 123;
244 152 121;
244 151 120;
243 149 118;
243 147 117;
242 146 115;
242 144 114;
241 142 112;
241 141 111;
240 139 109;
240 137 108;
239 136 106;
238 134 105;
238 132 103;
237 130 102;
236 129 100;
236 127 99;
235 125 97;
234 123 96;
233 121 95;
233 120 93;
232 118 92;
231 116 90;
230 114 89;
229 112 88;
228 110 86;
227 108 85;
227 106 83;
226 104 82;
225 102 81;
224 100 79;
223 98 78;
222 96 77;
221 94 75;
220 92 74;
218 90 73;
217 88 71;
216 86 70;
215 84 69;
214 82 67;
213 80 66;
212 78 65;
210 75 64;
209 73 62;
208 71 61;
207 69 60;
205 66 59;
204 64 57;
203 62 56;
202 59 55;
200 57 54;
199 54 53;
198 51 52;
196 49 50;
195 46 49;
193 43 48;
192 40 47;
190 37 46;
189 34 45;
188 30 44;
186 26 43;
185 22 41;
183 17 40;
181 11 39;
180 4 38];
%... Interpolate get requested size for color table
pp=1:(m-1)/(size(c,1)-1):m;
r=interp1(pp,c(:,1),1:m);
g=interp1(pp,c(:,2),1:m);
b=interp1(pp,c(:,3),1:m);
%... Normalize to range [0,1], and divide again by maximum value
% to correct for round-off errors associated with the interpolation.
map=[r' g' b']/255;
map = map/max(map(:));