|
2 | 2 | % EXTRACTS THE FACE STYLE USED FOR MATLAB OBJECTS |
3 | 3 | % OF TYPE "PATCH". THESE OBJECTS ARE USED BOXPLOTS. |
4 | 4 |
|
5 | | - %-AXIS STRUCTURE-% |
6 | | - axis_data = ancestor(patch_data.Parent,"axes"); |
| 5 | + cLim = ancestor(patch_data.Parent, ["axes" "polaraxes"]).CLim; |
| 6 | + colormap = ancestor(patch_data.Parent, "figure").Colormap; |
7 | 7 |
|
8 | | - %-FIGURE STRUCTURE-% |
9 | | - figure_data = ancestor(patch_data.Parent,"figure"); |
10 | | - |
11 | | - %-INITIALIZE OUTPUT-% |
12 | 8 | marker = struct(); |
13 | | - |
14 | | - %-PATCH EDGE WIDTH-% |
15 | 9 | marker.line.width = patch_data.LineWidth; |
16 | 10 |
|
17 | | - %-PATCH FACE COLOR-% |
18 | | - colormap = figure_data.Colormap; |
19 | | - |
20 | 11 | if isnumeric(patch_data.FaceColor) |
21 | | - %-paper_bgcolor-% |
22 | 12 | col = patch_data.FaceColor; |
23 | 13 | alpha = patch_data.FaceAlpha; |
24 | 14 | else |
|
27 | 17 | col = [0 0 0]; |
28 | 18 | alpha = 0; |
29 | 19 | case {"flat","interp"} |
| 20 | + faceVertexCData = patch_data.FaceVertexCData(1,1); |
30 | 21 | switch patch_data.CDataMapping |
31 | 22 | case "scaled" |
32 | | - capCD = max(min(patch_data.FaceVertexCData(1,1), ... |
33 | | - axis_data.CLim(2)), axis_data.CLim(1)); |
34 | | - scalefactor = (capCD - axis_data.CLim(1)) ... |
35 | | - / diff(axis_data.CLim); |
| 23 | + capCD = max(min(faceVertexCData, cLim(2)), cLim(1)); |
| 24 | + scalefactor = (capCD - cLim(1)) / diff(cLim); |
36 | 25 | col = colormap(1 + floor(scalefactor ... |
37 | 26 | * (length(colormap)-1)),:); |
38 | 27 | case "direct" |
39 | | - col = colormap(patch_data.FaceVertexCData(1,1),:); |
| 28 | + col = colormap(faceVertexCData,:); |
40 | 29 | end |
41 | 30 | alpha = patch_data.FaceAlpha; |
42 | | - case 'auto' |
| 31 | + case "auto" |
43 | 32 | cIndex = find(flipud(arrayfun(@(x) isequaln(x,patch_data), ... |
44 | 33 | patch_data.Parent.Children))); % far from pretty |
45 | 34 | col = patch_data.Parent.ColorOrder(cIndex,:); |
|
48 | 37 | end |
49 | 38 | marker.color = getStringColor(round(255*col), alpha); |
50 | 39 |
|
51 | | - %-PATCH EDGE COLOR-% |
52 | 40 | if isnumeric(patch_data.EdgeColor) |
53 | 41 | col = patch_data.EdgeColor; |
54 | 42 | alpha = patch_data.EdgeAlpha; |
|
58 | 46 | col = [0 0 0]; |
59 | 47 | alpha = 0; |
60 | 48 | case "flat" |
| 49 | + faceVertexCData = patch_data.FaceVertexCData(1,1); |
61 | 50 | switch patch_data.CDataMapping |
62 | 51 | case "scaled" |
63 | | - capCD = max(min(patch_data.FaceVertexCData(1,1), ... |
64 | | - axis_data.CLim(2)), axis_data.CLim(1)); |
65 | | - scalefactor = (capCD - axis_data.CLim(1)) ... |
66 | | - / diff(axis_data.CLim); |
| 52 | + capCD = max(min(faceVertexCData, cLim(2)), cLim(1)); |
| 53 | + scalefactor = (capCD - cLim(1)) / diff(cLim); |
67 | 54 | col = colormap(1 + floor(scalefactor ... |
68 | 55 | * (length(colormap)-1)),:); |
69 | 56 | case "direct" |
70 | | - col = colormap(patch_data.FaceVertexCData(1,1),:); |
| 57 | + col = colormap(faceVertexCData,:); |
71 | 58 | end |
72 | 59 | alpha = patch_data.EdgeAlpha; |
73 | 60 | end |
|
0 commit comments