diff --git a/plotly/plotlyfig_aux/handlegraphics/updateScatter.m b/plotly/plotlyfig_aux/handlegraphics/updateScatter.m index 144ab4a2..d0caa227 100644 --- a/plotly/plotlyfig_aux/handlegraphics/updateScatter.m +++ b/plotly/plotlyfig_aux/handlegraphics/updateScatter.m @@ -60,21 +60,23 @@ function updateScatter(obj,scatterIndex) %-CHECK FOR MULTIPLE AXES-% [xsource, ysource] = findSourceAxis(obj,axIndex); -if ~isfield(scatter_data,'ZData') +if isfield(scatter_data,'ZData') + if isempty(scatter_data.ZData) - %-AXIS DATA-% - eval(['xaxis = obj.layout.xaxis' num2str(xsource) ';']); - eval(['yaxis = obj.layout.yaxis' num2str(ysource) ';']); + %-AXIS DATA-% + eval(['xaxis = obj.layout.xaxis' num2str(xsource) ';']); + eval(['yaxis = obj.layout.yaxis' num2str(ysource) ';']); - %-------------------------------------------------------------------------% + %-------------------------------------------------------------------------% - %-scatter xaxis-% - obj.data{scatterIndex}.xaxis = ['x' num2str(xsource)]; + %-scatter xaxis-% + obj.data{scatterIndex}.xaxis = ['x' num2str(xsource)]; - %-------------------------------------------------------------------------% + %-------------------------------------------------------------------------% - %-scatter yaxis-% - obj.data{scatterIndex}.yaxis = ['y' num2str(ysource)]; + %-scatter yaxis-% + obj.data{scatterIndex}.yaxis = ['y' num2str(ysource)]; + end end @@ -154,8 +156,10 @@ function updateScatter(obj,scatterIndex) showleg = false; end - if ~isfield(scatter_data,'ZData') - obj.data{scatterIndex}.showlegend = showleg; + if isfield(scatter_data,'ZData') + if isempty(scatter_data.ZData) + obj.data{scatterIndex}.showlegend = showleg; + end end %---------------------------------------------------------------------% @@ -169,7 +173,11 @@ function updateScatter(obj,scatterIndex) if length(scatter_data) > 1 obj.data{scatterIndex}.marker.line.color{m} = childmarker.line.color{1}; else - obj.data{scatterIndex}.marker.line.color = childmarker.line.color; + if iscell(childmarker.line.color) + obj.data{scatterIndex}.marker.line.color = childmarker.line.color{1}; + else + obj.data{scatterIndex}.marker.line.color = childmarker.line.color; + end end %---------------------------------------------------------------------% @@ -194,12 +202,20 @@ function updateScatter(obj,scatterIndex) %---------------------------------------------------------------------% %-symbol-% - obj.data{scatterIndex}.marker.symbol{m} = childmarker.symbol; + if length(scatter_data) > 1 + obj.data{scatterIndex}.marker.symbol{m} = childmarker.symbol; + else + obj.data{scatterIndex}.marker.symbol = childmarker.symbol; + end %---------------------------------------------------------------------% %-size-% - obj.data{scatterIndex}.marker.size = childmarker.size; + if length(scatter_data) > 1 + obj.data{scatterIndex}.marker.size = childmarker.size; + else + obj.data{scatterIndex}.marker.size = childmarker.size * 0.15; + end %---------------------------------------------------------------------% @@ -208,7 +224,8 @@ function updateScatter(obj,scatterIndex) if length(scatter_data) > 1 || ischar(childmarker.line.color) obj.data{scatterIndex}.marker.line.width(m) = childmarker.line.width; else - obj.data{scatterIndex}.marker.line.width(1:length(childmarker.line.color)) = childmarker.line.width; + obj.data{scatterIndex}.marker.line.width = childmarker.line.width; + % obj.data{scatterIndex}.marker.line.width(1:length(childmarker.line.color)) = childmarker.line.width; end %---------------------------------------------------------------------% diff --git a/plotly/plotlyfig_aux/helpers/extractScatterMarker.m b/plotly/plotlyfig_aux/helpers/extractScatterMarker.m index 0a09c484..98beedca 100644 --- a/plotly/plotlyfig_aux/helpers/extractScatterMarker.m +++ b/plotly/plotlyfig_aux/helpers/extractScatterMarker.m @@ -34,7 +34,7 @@ %-MARKER SYMBOL (STYLE)-% if ~strcmp(patch_data.Marker,'none') - + switch patch_data.Marker case '.' marksymbol = 'circle'; @@ -169,7 +169,7 @@ for n = 1:length(patch_data.CData) - capCD = max(min(patch_data.CData(1,n),axis_data.CLim(2)),axis_data.CLim(1)); + capCD = max(min(patch_data.CData(n),axis_data.CLim(2)),axis_data.CLim(1)); scalefactor = (capCD - axis_data.CLim(1))/diff(axis_data.CLim); col = 255*(colormap(1 + floor(scalefactor*(length(colormap)-1)),:)); @@ -184,7 +184,7 @@ for n = 1:length(patch_data.CData) - capCD = max(min(patch_data.CData(1,n),axis_data.CLim(2)),axis_data.CLim(1)); + capCD = max(min(patch_data.CData(n),axis_data.CLim(2)),axis_data.CLim(1)); scalefactor = (capCD - axis_data.CLim(1))/diff(axis_data.CLim); col = 255*(colormap(1+floor(scalefactor*(length(colormap)-1)),:));