@@ -60,19 +60,23 @@ function updateScatter(obj,scatterIndex)
60
60
% -CHECK FOR MULTIPLE AXES-%
61
61
[xsource , ysource ] = findSourceAxis(obj ,axIndex );
62
62
63
- % -AXIS DATA-%
64
- eval([' xaxis = obj.layout.xaxis' num2str(xsource ) ' ;' ]);
65
- eval([' yaxis = obj.layout.yaxis' num2str(ysource ) ' ;' ]);
63
+ if ~isfield(scatter_data ,' ZData' )
66
64
67
- % -------------------------------------------------------------------------%
65
+ % -AXIS DATA-%
66
+ eval([' xaxis = obj.layout.xaxis' num2str(xsource ) ' ;' ]);
67
+ eval([' yaxis = obj.layout.yaxis' num2str(ysource ) ' ;' ]);
68
68
69
- % -scatter xaxis-%
70
- obj.data{scatterIndex }.xaxis = [' x' num2str(xsource )];
69
+ % -------------------------------------------------------------------------%
71
70
72
- % -------------------------------------------------------------------------%
71
+ % -scatter xaxis-%
72
+ obj.data{scatterIndex }.xaxis = [' x' num2str(xsource )];
73
+
74
+ % -------------------------------------------------------------------------%
73
75
74
- % -scatter yaxis-%
75
- obj.data{scatterIndex }.yaxis = [' y' num2str(ysource )];
76
+ % -scatter yaxis-%
77
+ obj.data{scatterIndex }.yaxis = [' y' num2str(ysource )];
78
+
79
+ end
76
80
77
81
% -------------------------------------------------------------------------%
78
82
@@ -96,83 +100,119 @@ function updateScatter(obj,scatterIndex)
96
100
97
101
% -------------------------------------------------------------------------%
98
102
103
+ % -scatter patch data-%
104
+ for m = 1 : length(scatter_data )
99
105
100
- % ---------------------------------------------------------------------%
101
-
102
- % -scatter x-%
103
- obj.data{scatterIndex }.x = scatter_data .XData ;
104
-
105
- % ---------------------------------------------------------------------%
106
-
107
- % -scatter y-%
108
- obj.data{scatterIndex }.y = scatter_data .YData ;
109
-
110
- % ---------------------------------------------------------------------%
111
-
112
- % -scatter z-%
113
- if isHG2()
114
- if isfield(scatter_data ,' ZData' )
115
- obj.data{scatterIndex }.type = ' scatter3d' ;
116
- obj.data{scatterIndex }.z = scatter_data .ZData ;
106
+ % reverse counter
107
+ n = length(scatter_data ) - m + 1 ;
108
+
109
+ % ---------------------------------------------------------------------%
110
+
111
+ % -scatter x-%
112
+ if length(scatter_data ) > 1
113
+ obj.data{scatterIndex }.x(m ) = scatter_data(n ).XData;
114
+ else
115
+ obj.data{scatterIndex }.x = scatter_data .XData ;
117
116
end
118
- end
119
-
120
- % ---------------------------------------------------------------------%
121
-
122
- % -scatter showlegend-%
123
- leg = get(scatter_data .Annotation );
124
- legInfo = get(leg .LegendInformation );
125
-
126
- switch legInfo .IconDisplayStyle
127
- case ' on'
128
- showleg = true ;
129
- case ' off'
130
- showleg = false ;
131
- end
132
-
133
- obj.data{scatterIndex }.showlegend = showleg ;
134
-
135
- % ---------------------------------------------------------------------%
136
-
137
- % -scatter marker-%
138
- childmarker = extractScatterMarker(scatter_data );
139
-
140
- % ---------------------------------------------------------------------%
141
-
142
- % -line color-%
143
- obj.data{scatterIndex }.marker.line.color = childmarker .line .color ;
144
-
145
- % ---------------------------------------------------------------------%
146
-
147
- % -marker color-%
148
- obj.data{scatterIndex }.marker.color = childmarker .color ;
149
-
150
- % ---------------------------------------------------------------------%
151
-
152
- % -sizeref-%
153
- obj.data{scatterIndex }.marker.sizeref = childmarker .sizeref ;
154
-
155
- % ---------------------------------------------------------------------%
156
-
157
- % -sizemode-%
158
- obj.data{scatterIndex }.marker.sizemode = childmarker .sizemode ;
159
-
160
- % ---------------------------------------------------------------------%
161
-
162
- % -symbol-%
163
- obj.data{scatterIndex }.marker.symbol = childmarker .symbol ;
164
-
165
- % ---------------------------------------------------------------------%
166
-
167
- % -size-%
168
- obj.data{scatterIndex }.marker.size = childmarker .size * 0.1 ;
169
-
170
- % ---------------------------------------------------------------------%
171
-
172
- % -line width-%
173
- obj.data{scatterIndex }.marker.line.width = childmarker .line .width ;
174
-
175
- % ---------------------------------------------------------------------%
176
117
118
+ % ---------------------------------------------------------------------%
119
+
120
+ % -scatter y-%
121
+ if length(scatter_data ) > 1
122
+ obj.data{scatterIndex }.y(m ) = scatter_data(n ).YData;
123
+ else
124
+ obj.data{scatterIndex }.y = scatter_data .YData ;
125
+ end
126
+
127
+ % ---------------------------------------------------------------------%
128
+
129
+ % -scatter z-%
130
+ if isHG2()
131
+ if isfield(scatter_data ,' ZData' )
132
+ if any(scatter_data .ZData )
133
+ if length(scatter_data ) > 1
134
+ obj.data{scatterIndex }.z(m ) = scatter_data(n ).ZData;
135
+ else
136
+ obj.data{scatterIndex }.z = scatter_data .ZData ;
137
+ end
138
+ % overwrite type
139
+ obj.data{scatterIndex }.type = ' scatter3d' ;
140
+ end
141
+ end
142
+ end
143
+
144
+ % ---------------------------------------------------------------------%
145
+
146
+ % -scatter showlegend-%
147
+ leg = get(scatter_data .Annotation );
148
+ legInfo = get(leg .LegendInformation );
149
+
150
+ switch legInfo .IconDisplayStyle
151
+ case ' on'
152
+ showleg = true ;
153
+ case ' off'
154
+ showleg = false ;
155
+ end
156
+
157
+ if ~isfield(scatter_data ,' ZData' )
158
+ obj.data{scatterIndex }.showlegend = showleg ;
159
+ end
160
+
161
+ % ---------------------------------------------------------------------%
162
+
163
+ % -scatter marker-%
164
+ childmarker = extractScatterMarker(scatter_data(n ));
165
+
166
+ % ---------------------------------------------------------------------%
167
+
168
+ % -line color-%
169
+ if length(scatter_data ) > 1
170
+ obj.data{scatterIndex }.marker.line.color{m } = childmarker.line.color{1 };
171
+ else
172
+ obj.data{scatterIndex }.marker.line.color = childmarker .line .color ;
173
+ end
174
+
175
+ % ---------------------------------------------------------------------%
176
+
177
+ % -marker color-%
178
+ if length(scatter_data ) > 1
179
+ obj.data{scatterIndex }.marker.color{m } = childmarker.color{1 };
180
+ else
181
+ obj.data{scatterIndex }.marker.color = childmarker .color ;
182
+ end
183
+
184
+ % ---------------------------------------------------------------------%
185
+
186
+ % -sizeref-%
187
+ obj.data{scatterIndex }.marker.sizeref = childmarker .sizeref ;
188
+
189
+ % ---------------------------------------------------------------------%
190
+
191
+ % -sizemode-%
192
+ obj.data{scatterIndex }.marker.sizemode = childmarker .sizemode ;
193
+
194
+ % ---------------------------------------------------------------------%
195
+
196
+ % -symbol-%
197
+ obj.data{scatterIndex }.marker.symbol{m } = childmarker .symbol ;
198
+
199
+ % ---------------------------------------------------------------------%
200
+
201
+ % -size-%
202
+ obj.data{scatterIndex }.marker.size = childmarker .size ;
203
+
204
+ % ---------------------------------------------------------------------%
205
+
206
+ % -line width-%
207
+
208
+ if length(scatter_data ) > 1 || ischar(childmarker .line .color )
209
+ obj.data{scatterIndex }.marker.line.width(m ) = childmarker .line .width ;
210
+ else
211
+ obj.data{scatterIndex }.marker.line.width(1 : length(childmarker .line .color )) = childmarker .line .width ;
212
+ end
213
+
214
+ % ---------------------------------------------------------------------%
215
+
216
+ end
177
217
end
178
218
0 commit comments