|
38 | 38 | try |
39 | 39 | colorbarData = obj.State.Colorbar(colorbarIndex).Handle; |
40 | 40 | catch |
41 | | - disp('could not extract ColorBar data'); |
| 41 | + disp("could not extract ColorBar data"); |
42 | 42 | end |
43 | 43 |
|
44 | 44 | %-STANDARDIZE UNITS-% |
45 | 45 | colorbarunits = colorbarData.Units; |
46 | | - obj.State.Colorbar(colorbarIndex).Handle.Units = 'normalized'; |
| 46 | + obj.State.Colorbar(colorbarIndex).Handle.Units = "normalized"; |
47 | 47 |
|
48 | 48 | %-colorbar position-% |
49 | | - colorbar.xanchor = 'left'; |
50 | | - colorbar.yanchor = 'bottom'; |
| 49 | + colorbar.xanchor = "left"; |
| 50 | + colorbar.yanchor = "bottom"; |
51 | 51 | colorbar.x = colorbarData.Position(1)*1.025; |
52 | 52 | colorbar.y = colorbarData.Position(2); |
53 | 53 |
|
|
86 | 86 | titleFontUnits = colorbarTitleData.FontUnits; |
87 | 87 | yLabelUnits = colorbarYLabelData.Units; |
88 | 88 | yLabelFontUnits = colorbarYLabelData.FontUnits; |
89 | | - colorbarTitle.Units = 'data'; |
90 | | - colorbarYLabel.Units = 'data'; |
91 | | - colorbarYLabel.FontUnits = 'points'; |
| 89 | + colorbarTitle.Units = "data"; |
| 90 | + colorbarYLabel.Units = "data"; |
| 91 | + colorbarYLabel.FontUnits = "points"; |
92 | 92 |
|
93 | 93 | if ~isHG2 |
94 | 94 | xLabelUnits = colorbarXLabelData.Units; |
95 | 95 | xLabelFontUnits = colorbarXLabelData.FontUnits; |
96 | | - colorbarTitle.FontUnits = 'points'; |
97 | | - colorbarXLabel.Units = 'data'; |
98 | | - colorbarXLabel.FontUnits = 'points'; |
| 96 | + colorbarTitle.FontUnits = "points"; |
| 97 | + colorbarXLabel.Units = "data"; |
| 98 | + colorbarXLabel.FontUnits = "points"; |
99 | 99 | end |
100 | 100 |
|
101 | 101 | if ~isempty(colorbarTitleData.String) |
102 | 102 | if colorbarTitleData.Rotation == 90 |
103 | | - colorbar.titleside = 'right'; |
| 103 | + colorbar.titleside = "right"; |
104 | 104 | else |
105 | | - colorbar.titleside = 'top'; |
| 105 | + colorbar.titleside = "top"; |
106 | 106 | end |
107 | 107 |
|
108 | | - colorbar.titlefont.family = ... |
109 | | - matlab2plotlyfont(colorbarTitleData.FontName); |
110 | | - col = round(255*colorbarTitleData.Color); |
111 | | - colorbar.titlefont.color = getStringColor(col); |
112 | | - colorbar.titlefont.size = 1.20 * colorbarTitleData.FontSize; |
| 108 | + colorbar.titlefont = getFont(colorbarTitleData); |
113 | 109 | elseif ~isempty(colorbarXLabelData.String) |
114 | | - colorbar.titleside = 'right'; |
115 | | - colorbar.titlefont.family = ... |
116 | | - matlab2plotlyfont(colorbarXLabelData.FontName); |
117 | | - col = round(255*colorbarXLabelData.Color); |
118 | | - colorbar.titlefont.color = getStringColor(col); |
119 | | - colorbar.titlefont.size = 1.20 * colorbarXLabelData.FontSize; |
| 110 | + colorbar.titleside = "right"; |
| 111 | + colorbar.titlefont = getFont(colorbarXLabelData); |
120 | 112 | elseif ~isempty(colorbarYLabelData.String) |
121 | | - colorbar.titleside = 'bottom'; |
122 | | - colorbar.titlefont.family = ... |
123 | | - matlab2plotlyfont(colorbarYLabelData.FontName); |
124 | | - col = round(255*colorbarYLabelData.Color); |
125 | | - colorbar.titlefont.color = getStringColor(col); |
126 | | - colorbar.titlefont.size = 1.20 * colorbarYLabelData.FontSize; |
| 113 | + colorbar.titleside = "bottom"; |
| 114 | + colorbar.titlefont = getFont(colorbarYLabelData); |
127 | 115 | end |
128 | 116 |
|
129 | 117 | %-REVERT UNITS-% |
|
145 | 133 | * obj.layout.width, colorbarData.TickLength(1) ... |
146 | 134 | * colorbarData.Position(4) * obj.layout.height)); |
147 | 135 |
|
148 | | - colorbar.thicknessmode = 'fraction'; |
| 136 | + colorbar.thicknessmode = "fraction"; |
149 | 137 | colorbar.thickness = colorbarData.Position(3); |
150 | 138 | colorbar.tickwidth = lineWidth; |
151 | 139 | colorbar.ticklen = tickLength; |
152 | 140 |
|
153 | | - colorbar.lenmode = 'fraction'; |
| 141 | + colorbar.lenmode = "fraction"; |
154 | 142 | colorbar.len = colorbarData.Position(4)*1.025; |
155 | 143 | colorbar.outlinewidth = lineWidth; |
156 | 144 |
|
|
159 | 147 |
|
160 | 148 | %-coloration-% |
161 | 149 | if isHG2 |
162 | | - col = round(255*colorbarData.Color); |
| 150 | + col = colorbarData.Color; |
163 | 151 | else |
164 | 152 | if orientVert |
165 | | - col = round(255*colorbarData.YColor); |
| 153 | + col = colorbarData.YColor; |
166 | 154 | else |
167 | | - col = round(255*colorbarData.XColor); |
| 155 | + col = colorbarData.XColor; |
168 | 156 | end |
169 | 157 | end |
170 | 158 |
|
171 | | - colorbarColor = getStringColor(col); |
| 159 | + colorbarColor = getStringColor(round(255*col)); |
172 | 160 |
|
173 | 161 | colorbar.outlinecolor = colorbarColor; |
174 | 162 | colorbar.tickcolor = colorbarColor; |
|
183 | 171 |
|
184 | 172 | if isHG2 |
185 | 173 | if isempty(colorbarData.Ticks) |
186 | | - %-hide tick labels-% |
187 | | - colorbar.ticks = ''; |
| 174 | + colorbar.ticks = ""; |
188 | 175 | colorbar.showticklabels = false; |
189 | 176 | else |
190 | 177 | %-tick direction-% |
191 | 178 | switch colorbarData.TickDirection |
192 | | - case 'in' |
193 | | - colorbar.ticks = 'inside'; |
194 | | - case 'out' |
195 | | - colorbar.ticks = 'outside'; |
| 179 | + case "in" |
| 180 | + colorbar.ticks = "inside"; |
| 181 | + case "out" |
| 182 | + colorbar.ticks = "outside"; |
196 | 183 | end |
197 | | - if strcmp(colorbarData.TickLabelsMode,'auto') |
| 184 | + if strcmp(colorbarData.TickLabelsMode,"auto") |
198 | 185 | colorbar.autotick = true; |
199 | 186 | % nticks = max ticks (so + 1) |
200 | 187 | colorbar.nticks = length(colorbarData.Ticks) + 1; |
201 | 188 | else |
202 | | - %-show tick labels-% |
203 | 189 | if isempty(colorbarData.TickLabels) |
204 | 190 | colorbar.showticklabels = false; |
205 | 191 | else |
|
211 | 197 | end |
212 | 198 | else |
213 | 199 | if orientVert |
214 | | - if isempty(colorbarData.YTick) |
215 | | - %-show tick labels-% |
216 | | - colorbar.ticks = ''; |
217 | | - colorbar.showticklabels = false; |
218 | | - else |
219 | | - %-tick direction-% |
220 | | - switch colorbarData.TickDir |
221 | | - case 'in' |
222 | | - colorbar.ticks = 'inside'; |
223 | | - case 'out' |
224 | | - colorbar.ticks = 'outside'; |
225 | | - end |
226 | | - if strcmp(colorbarData.YTickLabelMode, 'auto') |
227 | | - colorbar.autotick = true; |
228 | | - %-numticks-% |
229 | | - % nticks = max ticks (so + 1) |
230 | | - colorbar.nticks = length(colorbarData.YTick) + 1; |
231 | | - else |
232 | | - %-show tick labels-% |
233 | | - if isempty(colorbarData.YTickLabel) |
234 | | - colorbar.showticklabels = false; |
235 | | - else |
236 | | - colorbar.autotick = false; |
237 | | - colorbar.tick0 = ... |
238 | | - str2double(colorbarData.YTickLabel(1,:)); |
239 | | - colorbar.dtick = ... |
240 | | - str2double(colorbarData.YTickLabel(2,:)) ... |
241 | | - - str2double(colorbarData.YTickLabel(1,:)); |
242 | | - end |
243 | | - end |
244 | | - end |
| 200 | + tick = colorbarData.YTick; |
| 201 | + tickLabel = colorbarData.YTickLabel; |
| 202 | + tickLabelMode = colorbarData.YTickLabelMode; |
| 203 | + else |
| 204 | + tick = colorbarData.XTick; |
| 205 | + tickLabel = colorbarData.XTickLabel; |
| 206 | + tickLabelMode = colorbarData.XTickLabelMode; |
| 207 | + end |
| 208 | + |
| 209 | + if isempty(tick) |
| 210 | + colorbar.ticks = ""; |
| 211 | + colorbar.showticklabels = false; |
245 | 212 | else |
246 | | - if isempty(colorbarData.XTick) |
247 | | - %-show tick labels-% |
248 | | - colorbar.ticks = ''; |
249 | | - colorbar.showticklabels = false; |
| 213 | + %-tick direction-% |
| 214 | + switch colorbarData.TickDir |
| 215 | + case "in" |
| 216 | + colorbar.ticks = "inside"; |
| 217 | + case "out" |
| 218 | + colorbar.ticks = "outside"; |
| 219 | + end |
| 220 | + if strcmp(tickLabelMode, "auto") |
| 221 | + colorbar.autotick = true; |
| 222 | + colorbar.nticks = length(tick) + 1; |
250 | 223 | else |
251 | | - %-tick direction-% |
252 | | - switch colorbarData.TickDir |
253 | | - case 'in' |
254 | | - colorbar.ticks = 'inside'; |
255 | | - case 'out' |
256 | | - colorbar.ticks = 'outside'; |
257 | | - end |
258 | | - if strcmp(colorbarData.XTickLabelMode,'auto') |
259 | | - colorbar.autotick = true; |
260 | | - colorbar.nticks = length(colorbarData.XTick) + 1; |
| 224 | + if isempty(tickLabel) |
| 225 | + colorbar.showticklabels = false; |
261 | 226 | else |
262 | | - %-show tick labels-% |
263 | | - if isempty(colorbarData.XTickLabel) |
264 | | - colorbar.showticklabels = false; |
265 | | - else |
266 | | - colorbar.autotick = false; |
267 | | - colorbar.tick0 = ... |
268 | | - str2double(colorbarData.XTickLabel(1,:)); |
269 | | - colorbar.dtick = ... |
270 | | - str2double(colorbarData.XTickLabel(2,:)) ... |
271 | | - - str2double(colorbarData.XTickLabel(1,:)); |
272 | | - end |
| 227 | + colorbar.autotick = false; |
| 228 | + colorbar.tick0 = str2double(tickLabel(1,:)); |
| 229 | + colorbar.dtick = str2double(tickLabel(2,:)) ... |
| 230 | + - str2double(tickLabel(1,:)); |
273 | 231 | end |
274 | 232 | end |
275 | 233 | end |
|
278 | 236 | %-colorbar bg-color-% |
279 | 237 | if ~isHG2 |
280 | 238 | if ~ischar(colorbarData.Color) |
281 | | - col = round(255*colorbarData.Color); |
| 239 | + col = colorbarData.Color; |
282 | 240 | else |
283 | | - col = round(255*figureData.Color); |
| 241 | + col = figureData.Color; |
284 | 242 | end |
285 | 243 |
|
286 | | - obj.layout.plot_bgcolor = getStringColor(col); |
| 244 | + obj.layout.plot_bgcolor = getStringColor(round(255*col)); |
287 | 245 | end |
288 | 246 |
|
289 | 247 | %-ASSOCIATED DATA-% |
290 | | - if isfield(colorbarData.UserData,'dataref') |
| 248 | + if isfield(colorbarData.UserData,"dataref") |
291 | 249 | colorbarDataIndex = colorbarData.UserData.dataref; |
292 | 250 | else |
293 | 251 | colorbarDataIndex = findColorbarData(obj,colorbarIndex); |
|
296 | 254 | if (nticks ~= 0) |
297 | 255 | colorIndex = linspace(0, 1, nticks); |
298 | 256 | colorData = linspace(0, 1, nticks-1); |
299 | | - m = 1; |
300 | 257 |
|
| 258 | + colorscale = cell(1:2*(nticks-1)); |
301 | 259 | for n = 1:nticks-1 |
302 | 260 | col = 1-colorData(n); |
303 | | - colorscale{m} = {colorIndex(n), ... |
| 261 | + colorscale{2*n-1} = {colorIndex(n), ... |
304 | 262 | getStringColor(round(255*[col, col, col]))}; |
305 | | - colorscale{m+1} = {colorIndex(n+1), ... |
| 263 | + colorscale{2*n} = {colorIndex(n+1), ... |
306 | 264 | getStringColor(round(255*[col, col, col]))}; |
307 | | - m = 2*n+1; |
308 | 265 | end |
309 | 266 | obj.data{colorbarDataIndex}.marker.color = colorbarData.Ticks; |
310 | 267 | else |
311 | | - colorscale = {{0, 'rgb(255,255,255)'}, {1, 'rgb(0,0,0)'}}; |
| 268 | + colorscale = {{0, "rgb(255,255,255)"}, {1, "rgb(0,0,0)"}}; |
312 | 269 | end |
313 | 270 |
|
314 | 271 | obj.data{colorbarDataIndex}.marker.colorscale = colorscale; |
|
318 | 275 | %-REVERT UNITS-% |
319 | 276 | obj.State.Colorbar(colorbarIndex).Handle.Units = colorbarunits; |
320 | 277 | end |
| 278 | + |
| 279 | +function out = getFont(labelData) |
| 280 | + out = struct( ... |
| 281 | + "family", matlab2plotlyfont(labelData.FontName), ... |
| 282 | + "color", getStringColor(round(255*labelData.Color)), ... |
| 283 | + "size", 1.20 * labelData.FontSize ... |
| 284 | + ); |
| 285 | +end |
0 commit comments