@@ -60,19 +60,23 @@ function updateScatter(obj,scatterIndex)
6060% -CHECK FOR MULTIPLE AXES-%
6161[xsource , ysource ] = findSourceAxis(obj ,axIndex );
6262
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' )
6664
67- % -------------------------------------------------------------------------%
65+ % -AXIS DATA-%
66+ eval([' xaxis = obj.layout.xaxis' num2str(xsource ) ' ;' ]);
67+ eval([' yaxis = obj.layout.yaxis' num2str(ysource ) ' ;' ]);
6868
69- % -scatter xaxis-%
70- obj.data{scatterIndex }.xaxis = [' x' num2str(xsource )];
69+ % -------------------------------------------------------------------------%
7170
72- % -------------------------------------------------------------------------%
71+ % -scatter xaxis-%
72+ obj.data{scatterIndex }.xaxis = [' x' num2str(xsource )];
73+
74+ % -------------------------------------------------------------------------%
7375
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
7680
7781% -------------------------------------------------------------------------%
7882
@@ -96,83 +100,119 @@ function updateScatter(obj,scatterIndex)
96100
97101% -------------------------------------------------------------------------%
98102
103+ % -scatter patch data-%
104+ for m = 1 : length(scatter_data )
99105
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 ;
117116 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- % ---------------------------------------------------------------------%
176117
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
177217end
178218
0 commit comments