From 9dcd668ecf7ba33977444e28968d915573b80eea Mon Sep 17 00:00:00 2001 From: Gilberto Galvis Date: Fri, 13 Aug 2021 20:51:11 -0400 Subject: [PATCH 1/8] fix issue #265 --- plotly/plotlyfig_aux/core/updateData.m | 2 + .../handlegraphics/updatePColor.m | 130 ++++++++++++++++++ 2 files changed, 132 insertions(+) create mode 100644 plotly/plotlyfig_aux/handlegraphics/updatePColor.m diff --git a/plotly/plotlyfig_aux/core/updateData.m b/plotly/plotlyfig_aux/core/updateData.m index d8331ebd..b3660c6b 100644 --- a/plotly/plotlyfig_aux/core/updateData.m +++ b/plotly/plotlyfig_aux/core/updateData.m @@ -9,6 +9,8 @@ if ~strcmpi(obj.PlotOptions.TreatAs, '_') if strcmpi(obj.PlotOptions.TreatAs, 'pie3') updatePie3(obj, dataIndex); + elseif strcmpi(obj.PlotOptions.TreatAs, 'pcolor') + updatePColor(obj, dataIndex); end %-update plot based on plot call class-% diff --git a/plotly/plotlyfig_aux/handlegraphics/updatePColor.m b/plotly/plotlyfig_aux/handlegraphics/updatePColor.m new file mode 100644 index 00000000..94f0b7e6 --- /dev/null +++ b/plotly/plotlyfig_aux/handlegraphics/updatePColor.m @@ -0,0 +1,130 @@ +function obj = updatePColor(obj, patchIndex) + +%-AXIS INDEX-% +axIndex = obj.getAxisIndex(obj.State.Plot(patchIndex).AssociatedAxis); + +%-PCOLOR DATA STRUCTURE- % +pcolor_data = get(obj.State.Plot(patchIndex).Handle); +figure_data = get(obj.State.Figure.Handle); + +%-CHECK FOR MULTIPLE AXES-% +[xsource, ysource] = findSourceAxis(obj,axIndex); + +%-AXIS DATA-% +eval(['xaxis = obj.layout.xaxis' num2str(xsource) ';']); +eval(['yaxis = obj.layout.yaxis' num2str(ysource) ';']); + +%-------------------------------------------------------------------------% + +%-pcolor xaxis-% +obj.data{patchIndex}.xaxis = ['x' num2str(xsource)]; + +%-------------------------------------------------------------------------% + +%-pcolor yaxis-% +obj.data{patchIndex}.yaxis = ['y' num2str(ysource)]; + +%-------------------------------------------------------------------------% + +%-plot type: surface-% +obj.data{patchIndex}.type = 'surface'; + +%-------------------------------------------------------------------------% + +%-handle vertices-% +xdata = []; ydata = []; zdata = []; cdata = []; + +for n = 1:size(pcolor_data.XData, 2)-1 + for m = 1:size(pcolor_data.XData, 1)-1 + xdata = [xdata pcolor_data.XData(m:m+1, n:n+1) NaN(2,1)]; + ydata = [ydata pcolor_data.YData(m:m+1, n:n+1) NaN(2,1)]; + zdata = [zdata pcolor_data.ZData(m:m+1, n:n+1) NaN(2,1)]; + cdata = [cdata ones(2,3)*pcolor_data.CData(m, n)]; + end +end + +%-------------------------------------------------------------------------% + +%-x-data-% +obj.data{patchIndex}.x = xdata; + +%-------------------------------------------------------------------------% + +%-y-data-% +obj.data{patchIndex}.y = ydata; + +%-------------------------------------------------------------------------% + +%-z-data-% +obj.data{patchIndex}.z = zdata; + +%-------------------------------------------------------------------------% + +%-colorscale to map-% +cmap = figure_data.Colormap; +len = length(cmap)-1; + +for c = 1: length(cmap) + col = 255 * cmap(c, :); + obj.data{patchIndex}.colorscale{c} = { (c-1)/len , ['rgb(' num2str(col(1)) ',' num2str(col(2)) ',' num2str(col(3)) ')' ] }; +end + +obj.data{patchIndex}.surfacecolor = cdata; +obj.data{patchIndex}.showscale = false; + +%-------------------------------------------------------------------------% + +%-aspectratio-% +obj.layout.scene.aspectratio.x = 12; +obj.layout.scene.aspectratio.y = 10; +obj.layout.scene.aspectratio.z = 0.0001; + +%-------------------------------------------------------------------------% + +%-camera.eye-% +obj.layout.scene.camera.eye.x = 0; +obj.layout.scene.camera.eye.y = -0.5; +obj.layout.scene.camera.eye.z = 14; + +%-------------------------------------------------------------------------% + +%-hide axis-x-% +obj.layout.scene.xaxis.showticklabels = true; +obj.layout.scene.xaxis.zeroline = false; +obj.layout.scene.xaxis.showgrid = false; + +%-------------------------------------------------------------------------% + +%-hide axis-y-% +obj.layout.scene.yaxis.zeroline = false; +obj.layout.scene.yaxis.showgrid = false; +obj.layout.scene.yaxis.showticklabels = true; + +%-------------------------------------------------------------------------% + +%-hide axis-z-% +obj.layout.scene.zaxis.title = ''; +obj.layout.scene.zaxis.autotick = false; +obj.layout.scene.zaxis.zeroline = false; +obj.layout.scene.zaxis.showline = false; +obj.layout.scene.zaxis.showticklabels = false; +obj.layout.scene.zaxis.showgrid = false; + +%-------------------------------------------------------------------------% + +%-patch showlegend-% +leg = get(pcolor_data.Annotation); +legInfo = get(leg.LegendInformation); + +switch legInfo.IconDisplayStyle + case 'on' + showleg = true; + case 'off' + showleg = false; +end + +obj.data{patchIndex}.showlegend = showleg; + +%-------------------------------------------------------------------------% + +end From a6a8ca1c6220091c90938e7b67cc324cbe2984ab Mon Sep 17 00:00:00 2001 From: Gilberto Galvis Date: Sat, 14 Aug 2021 09:45:39 -0400 Subject: [PATCH 2/8] fix issue #263 --- .../handlegraphics/updatePColor.m | 37 ++++++++++++++----- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/plotly/plotlyfig_aux/handlegraphics/updatePColor.m b/plotly/plotlyfig_aux/handlegraphics/updatePColor.m index 94f0b7e6..77a67ecf 100644 --- a/plotly/plotlyfig_aux/handlegraphics/updatePColor.m +++ b/plotly/plotlyfig_aux/handlegraphics/updatePColor.m @@ -31,15 +31,28 @@ %-------------------------------------------------------------------------% -%-handle vertices-% -xdata = []; ydata = []; zdata = []; cdata = []; - -for n = 1:size(pcolor_data.XData, 2)-1 - for m = 1:size(pcolor_data.XData, 1)-1 - xdata = [xdata pcolor_data.XData(m:m+1, n:n+1) NaN(2,1)]; - ydata = [ydata pcolor_data.YData(m:m+1, n:n+1) NaN(2,1)]; - zdata = [zdata pcolor_data.ZData(m:m+1, n:n+1) NaN(2,1)]; - cdata = [cdata ones(2,3)*pcolor_data.CData(m, n)]; +%-format data-% +XData = pcolor_data.XData; +YData = pcolor_data.YData; +ZData = pcolor_data.ZData; +CData = pcolor_data.CData; + +xdata = zeros(size(XData, 1)-1*2, size(XData, 2)-1*2); +ydata = zeros(size(XData, 1)-1*2, size(XData, 2)-1*2); +zdata = zeros(size(XData, 1)-1*2, size(XData, 2)-1*2); +cdata = zeros(size(XData, 1)-1*2, size(XData, 2)-1*2); + +for n = 1:size(XData, 2)-1 + for m = 1:size(XData, 1)-1 + + % get indices + n1 = 2*(n-1)+1; m1 = 2*(m-1)+1; + + % get surface mesh + xdata(m1:m1+1,n1:n1+1) = XData(m:m+1, n:n+1); + ydata(m1:m1+1,n1:n1+1) = YData(m:m+1, n:n+1); + zdata(m1:m1+1,n1:n1+1) = ZData(m:m+1, n:n+1); + cdata(m1:m1+1,n1:n1+1) = ones(2,2)*CData(m, n); end end @@ -60,7 +73,7 @@ %-------------------------------------------------------------------------% -%-colorscale to map-% +%-coloring-% cmap = figure_data.Colormap; len = length(cmap)-1; @@ -71,6 +84,8 @@ obj.data{patchIndex}.surfacecolor = cdata; obj.data{patchIndex}.showscale = false; +obj.data{patchIndex}.cmin = min(CData(:)); +obj.data{patchIndex}.cmax = max(CData(:)); %-------------------------------------------------------------------------% @@ -92,6 +107,7 @@ obj.layout.scene.xaxis.showticklabels = true; obj.layout.scene.xaxis.zeroline = false; obj.layout.scene.xaxis.showgrid = false; +obj.layout.scene.xaxis.title = ''; %-------------------------------------------------------------------------% @@ -99,6 +115,7 @@ obj.layout.scene.yaxis.zeroline = false; obj.layout.scene.yaxis.showgrid = false; obj.layout.scene.yaxis.showticklabels = true; +obj.layout.scene.yaxis.title = ''; %-------------------------------------------------------------------------% From 454aeca476d4d90fd045d2bc5eec8b99bf5e52d8 Mon Sep 17 00:00:00 2001 From: Gilberto Galvis Date: Sat, 14 Aug 2021 10:26:16 -0400 Subject: [PATCH 3/8] fix issue #264 --- .../handlegraphics/updatePColor.m | 39 +++++++++++++++++-- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/plotly/plotlyfig_aux/handlegraphics/updatePColor.m b/plotly/plotlyfig_aux/handlegraphics/updatePColor.m index 77a67ecf..359a6ab0 100644 --- a/plotly/plotlyfig_aux/handlegraphics/updatePColor.m +++ b/plotly/plotlyfig_aux/handlegraphics/updatePColor.m @@ -36,11 +36,18 @@ YData = pcolor_data.YData; ZData = pcolor_data.ZData; CData = pcolor_data.CData; +usegrid = false; -xdata = zeros(size(XData, 1)-1*2, size(XData, 2)-1*2); -ydata = zeros(size(XData, 1)-1*2, size(XData, 2)-1*2); -zdata = zeros(size(XData, 1)-1*2, size(XData, 2)-1*2); -cdata = zeros(size(XData, 1)-1*2, size(XData, 2)-1*2); +if isvector(XData) + usegrid = true; + [XData, YData] = meshgrid(XData, YData); +end + +sizes = [(size(XData, 1)-1)*2, (size(XData, 2)-1)*2]; +xdata = zeros(sizes); +ydata = zeros(sizes); +zdata = zeros(sizes); +cdata = zeros(sizes); for n = 1:size(XData, 2)-1 for m = 1:size(XData, 1)-1 @@ -89,6 +96,30 @@ %-------------------------------------------------------------------------% +%-setting grid mesh-% +if usegrid + % x-direction + xmin = min(XData(:)); + xmax = max(XData(:)); + xsize = (xmax - xmin) / (size(XData, 2) - 1); + obj.data{patchIndex}.contours.x.start = xmin; + obj.data{patchIndex}.contours.x.end = xmax; + obj.data{patchIndex}.contours.x.size = xsize; + obj.data{patchIndex}.contours.x.show = true; + obj.data{patchIndex}.contours.x.color = 'black'; + % y-direction + ymin = min(YData(:)); + ymax = max(YData(:)); + ysize = (ymax - ymin) / (size(YData, 2)-1); + obj.data{patchIndex}.contours.y.start = ymin; + obj.data{patchIndex}.contours.y.end = ymax; + obj.data{patchIndex}.contours.y.size = ysize; + obj.data{patchIndex}.contours.y.show = true; + obj.data{patchIndex}.contours.y.color = 'black'; +end + +%-------------------------------------------------------------------------% + %-aspectratio-% obj.layout.scene.aspectratio.x = 12; obj.layout.scene.aspectratio.y = 10; From b64e170507ffadabd261926c04fc09866a1fc7b9 Mon Sep 17 00:00:00 2001 From: Gilberto Galvis Date: Sat, 14 Aug 2021 15:40:47 -0400 Subject: [PATCH 4/8] fix issue #240 --- plotly/plotlyfig.m | 8 +- plotly/plotlyfig_aux/core/updateData.m | 4 +- .../handlegraphics/updatePolarplot.m | 135 ++++++++++++++++++ 3 files changed, 142 insertions(+), 5 deletions(-) create mode 100644 plotly/plotlyfig_aux/handlegraphics/updatePolarplot.m diff --git a/plotly/plotlyfig.m b/plotly/plotlyfig.m index 6797bb4b..6859dffe 100644 --- a/plotly/plotlyfig.m +++ b/plotly/plotlyfig.m @@ -642,7 +642,7 @@ function validate(obj) updateAxis(obj,n); catch % TODO to the future - disp('warning: error in updateAxis') + disp('catch at line 643 in plotlyfog.m file') end end @@ -657,7 +657,7 @@ function validate(obj) end catch % TODO to the future - disp('warning: error using update_opac') + disp('catch at line 660 in plotlyfog.m file') end end @@ -668,7 +668,7 @@ function validate(obj) updateAnnotation(obj,n); catch % TODO to the future - disp('warning: error in updateAnnotation') + disp('catch at line 671 in plotlyfog.m file') end end @@ -972,7 +972,7 @@ function delete(obj) strcmpi(fieldname,'surface') || strcmpi(fieldname,'scatter3d') ... || strcmpi(fieldname,'mesh3d') || strcmpi(fieldname,'bar') ... || strcmpi(fieldname,'scatterpolar') || strcmpi(fieldname,'barpolar') ... - || strcmpi(fieldname,'scene') ... + || strcmpi(fieldname,'scene') || strcmpi(fieldname,'layout') ... ) fprintf(['\nWhoops! ' exception.message(1:end-1) ' in ' fieldname '\n\n']); end diff --git a/plotly/plotlyfig_aux/core/updateData.m b/plotly/plotlyfig_aux/core/updateData.m index b3660c6b..1c6fafe9 100644 --- a/plotly/plotlyfig_aux/core/updateData.m +++ b/plotly/plotlyfig_aux/core/updateData.m @@ -11,6 +11,8 @@ updatePie3(obj, dataIndex); elseif strcmpi(obj.PlotOptions.TreatAs, 'pcolor') updatePColor(obj, dataIndex); + elseif strcmpi(obj.PlotOptions.TreatAs, 'polarplot') + updatePolarplot(obj, dataIndex); end %-update plot based on plot call class-% @@ -150,7 +152,7 @@ end catch % TODO to the future - disp('waring: error in updateData at AXIS/DATA CLEAN UP section') + disp('catch at line 155 in updateData.m file') end %-------------------------------------------------------------------------% diff --git a/plotly/plotlyfig_aux/handlegraphics/updatePolarplot.m b/plotly/plotlyfig_aux/handlegraphics/updatePolarplot.m new file mode 100644 index 00000000..4d3df342 --- /dev/null +++ b/plotly/plotlyfig_aux/handlegraphics/updatePolarplot.m @@ -0,0 +1,135 @@ +function updatePolarplot(obj,plotIndex) + +%-------------------------------------------------------------------------% + +%-Get plot class-% +plotclass = obj.State.Plot(plotIndex).Class; + +%-------------------------------------------------------------------------% + +%-run the correct plot class-% +if strcmpi(plotclass, 'line') + updatePolarline(obj,plotIndex) +elseif strcmpi(plotclass, 'polaraxes') + updatePolaraxes(obj,plotIndex) +end + +%-------------------------------------------------------------------------% + +end + + +%-------------------------------------------------------------------------% +%-HELPERS FUNCTIONS-% +%-------------------------------------------------------------------------% + +function updatePolaraxes(obj,plotIndex) + +%-------------------------------------------------------------------------% + +%-PLOT DATA STRUCTURE-% +plot_data = get(obj.State.Plot(plotIndex).Handle); + +%-------------------------------------------------------------------------% + +%-setting polar axes-% +gridcolor = 'rgb(235,235,235)'; +linecolor = 'rgb(210,210,210)'; + +%-R-axis-% +obj.layout.polar.angularaxis.tickmode = 'array'; +obj.layout.polar.angularaxis.tickvals = plot_data.ThetaTick(1:end-1); +obj.layout.polar.angularaxis.gridcolor = gridcolor; +obj.layout.polar.angularaxis.linecolor = linecolor; +obj.layout.polar.angularaxis.ticks = ''; + +%-Theta-axis-% +obj.layout.polar.radialaxis.angle = plot_data.RAxisLocation; +obj.layout.polar.radialaxis.tickmode = 'array'; +obj.layout.polar.radialaxis.tickvals = plot_data.RTick; +obj.layout.polar.radialaxis.gridcolor = gridcolor; +obj.layout.polar.radialaxis.showline = false; +obj.layout.polar.radialaxis.tickangle = 90; +obj.layout.polar.radialaxis.ticks = ''; + +%-------------------------------------------------------------------------% + +end + +function updatePolarline(obj,plotIndex) + +%-------------------------------------------------------------------------% + +%-PLOT DATA STRUCTURE- % +plot_data = get(obj.State.Plot(plotIndex).Handle); + +%-------------------------------------------------------------------------% + +%-scatterpolar type-% +obj.data{plotIndex}.type = 'scatterpolar'; + +%-------------------------------------------------------------------------% + +%-scatter visible-% +obj.data{plotIndex}.visible = strcmp(plot_data.Visible,'on'); + +%-------------------------------------------------------------------------% + +%-scatter r-data-% +obj.data{plotIndex}.r = abs(plot_data.RData); + +%-------------------------------------------------------------------------% + +%-scatter theta-data-% +obj.data{plotIndex}.theta = rad2deg(plot_data.ThetaData); + +%-------------------------------------------------------------------------% + +%-scatterpolar name-% +obj.data{plotIndex}.name = plot_data.DisplayName; + +%-------------------------------------------------------------------------% + +%-scatterpolar mode-% +if ~strcmpi('none', plot_data.Marker) ... + && ~strcmpi('none', plot_data.LineStyle) + mode = 'lines+markers'; +elseif ~strcmpi('none', plot_data.Marker) + mode = 'markers'; +elseif ~strcmpi('none', plot_data.LineStyle) + mode = 'lines'; +else + mode = 'none'; +end + +obj.data{plotIndex}.mode = mode; + +%-------------------------------------------------------------------------% + +%-scatter line-% +obj.data{plotIndex}.line = extractLineLine(plot_data); +obj.data{plotIndex}.line.width = 2 * obj.data{plotIndex}.line.width; + +%-------------------------------------------------------------------------% + +%-scatter marker-% +obj.data{plotIndex}.marker = extractLineMarker(plot_data); + +%-------------------------------------------------------------------------% + +%-scatter showlegend-% +leg = get(plot_data.Annotation); +legInfo = get(leg.LegendInformation); + +switch legInfo.IconDisplayStyle + case 'on' + showleg = true; + case 'off' + showleg = false; +end + +obj.data{plotIndex}.showlegend = showleg; + +%-------------------------------------------------------------------------% + +end \ No newline at end of file From 0f79dfe778aa1962fb50f8e9fa00f723a32d31a2 Mon Sep 17 00:00:00 2001 From: Gilberto Galvis Date: Mon, 16 Aug 2021 18:19:50 -0400 Subject: [PATCH 5/8] fix issue #236 --- .../handlegraphics/updateLineseries.m | 8 +++++- .../plotlyfig_aux/handlegraphics/updateStem.m | 27 ++++++++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/plotly/plotlyfig_aux/handlegraphics/updateLineseries.m b/plotly/plotlyfig_aux/handlegraphics/updateLineseries.m index e20bac47..28b35352 100644 --- a/plotly/plotlyfig_aux/handlegraphics/updateLineseries.m +++ b/plotly/plotlyfig_aux/handlegraphics/updateLineseries.m @@ -131,6 +131,9 @@ function updateLineseries(obj,plotIndex) %-------------------------------------------------------------------------% +%-Fro 3D plots-% +obj.PlotOptions.is3d = false; % by default + if isfield(plot_data,'ZData') numbset = unique(plot_data.ZData); @@ -139,8 +142,11 @@ function updateLineseries(obj,plotIndex) %-scatter z-% obj.data{plotIndex}.z = plot_data.ZData; - %overwrite type + %-overwrite type-% obj.data{plotIndex}.type = 'scatter3d'; + + %-flag to manage 3d plots-% + obj.PlotOptions.is3d = true; end end diff --git a/plotly/plotlyfig_aux/handlegraphics/updateStem.m b/plotly/plotlyfig_aux/handlegraphics/updateStem.m index a75fea4a..7b86279f 100644 --- a/plotly/plotlyfig_aux/handlegraphics/updateStem.m +++ b/plotly/plotlyfig_aux/handlegraphics/updateStem.m @@ -5,6 +5,7 @@ %-update line-% updateLineseries(obj,dataIndex); stem_temp_data = obj.data{dataIndex}; +isstem3d = obj.PlotOptions.is3d; %------------------------------------------------------------------------% @@ -17,6 +18,10 @@ xdata_extended = zeros(1,3*length(stem_temp_data.x)); ydata_extended = zeros(1,3*length(stem_temp_data.y)); +if isstem3d + zdata_extended = zeros(1,3*length(stem_temp_data.z)); +end + %-format x data-% m = 1; for n = 1:length(stem_temp_data.x) @@ -29,12 +34,28 @@ %-format y data-% m = 1; for n = 1:length(stem_temp_data.y) - ydata_extended(m) = 0; + ydata_extended(m) = 0; + + if isstem3d + ydata_extended(m) = stem_temp_data.y(n); + end + ydata_extended(m+1) = stem_temp_data.y(n); ydata_extended(m+2) = nan; m = m + 3; end +%-format z data-% +if isstem3d + m = 1; + for n = 1:length(stem_temp_data.z) + zdata_extended(m) = 0; + zdata_extended(m+1) = stem_temp_data.z(n); + zdata_extended(m+2) = nan; + m = m + 3; + end +end + %-hide every other marker-% color_temp = cell(1,3*length(stem_temp_data.y)); line_color_temp = cell(1,3*length(stem_temp_data.y)); @@ -57,6 +78,10 @@ stem_temp_data.x = xdata_extended; stem_temp_data.y = ydata_extended; +if isstem3d + stem_temp_data.z = zdata_extended; +end + %------------------------------------------------------------------------% obj.data{dataIndex} = stem_temp_data; From 78efaca0d39af84d489b095091d9fa0df5caa9d2 Mon Sep 17 00:00:00 2001 From: Gilberto Galvis Date: Mon, 16 Aug 2021 21:05:53 -0400 Subject: [PATCH 6/8] fix issue #204 --- plotly/plotlyfig.m | 17 +++++++++++++---- plotly/plotlyfig_aux/core/updateData.m | 4 +++- plotly/plotlyfig_aux/helpers/parseString.m | 2 ++ 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/plotly/plotlyfig.m b/plotly/plotlyfig.m index 6859dffe..6dd40a6b 100644 --- a/plotly/plotlyfig.m +++ b/plotly/plotlyfig.m @@ -450,7 +450,11 @@ function validate(obj) % handle title (for feed) if obj.PlotOptions.CleanFeedTitle - cleanFeedTitle(obj); + try + cleanFeedTitle(obj); + catch + % TODO to the future + end end %get args @@ -642,7 +646,7 @@ function validate(obj) updateAxis(obj,n); catch % TODO to the future - disp('catch at line 643 in plotlyfog.m file') + % disp('catch at line 647 in plotlyfig.m file') end end @@ -665,10 +669,14 @@ function validate(obj) % update annotations for n = 1:obj.State.Figure.NumTexts try - updateAnnotation(obj,n); + if ~strcmpi(obj.State.Plot(dataIndex).Class, 'heatmap') + updateAnnotation(obj,n); + else + obj.PlotOptions.CleanFeedTitle = false; + end catch % TODO to the future - disp('catch at line 671 in plotlyfog.m file') + % disp('catch at line 679 in plotlyfig.m file') end end @@ -973,6 +981,7 @@ function delete(obj) || strcmpi(fieldname,'mesh3d') || strcmpi(fieldname,'bar') ... || strcmpi(fieldname,'scatterpolar') || strcmpi(fieldname,'barpolar') ... || strcmpi(fieldname,'scene') || strcmpi(fieldname,'layout') ... + || strcmpi(fieldname,'heatmap') ... ) fprintf(['\nWhoops! ' exception.message(1:end-1) ' in ' fieldname '\n\n']); end diff --git a/plotly/plotlyfig_aux/core/updateData.m b/plotly/plotlyfig_aux/core/updateData.m index 1c6fafe9..da579f05 100644 --- a/plotly/plotlyfig_aux/core/updateData.m +++ b/plotly/plotlyfig_aux/core/updateData.m @@ -22,6 +22,8 @@ switch lower(obj.State.Plot(dataIndex).Class) %--CORE PLOT OBJECTS--% + case 'heatmap' + updateHeatmap(obj, dataIndex); case 'image' updateImage(obj, dataIndex); case 'line' @@ -152,7 +154,7 @@ end catch % TODO to the future - disp('catch at line 155 in updateData.m file') + % disp('catch at line 157 in updateData.m file') end %-------------------------------------------------------------------------% diff --git a/plotly/plotlyfig_aux/helpers/parseString.m b/plotly/plotlyfig_aux/helpers/parseString.m index 3179b183..56875eb9 100644 --- a/plotly/plotlyfig_aux/helpers/parseString.m +++ b/plotly/plotlyfig_aux/helpers/parseString.m @@ -247,6 +247,8 @@ end end end +else + formatStr = 'untitled'; end From 30ebdaa48c3d800e9179804ee685d7318681d0dd Mon Sep 17 00:00:00 2001 From: Gilberto Galvis Date: Tue, 17 Aug 2021 09:02:34 -0400 Subject: [PATCH 7/8] fix issue #204 --- .../handlegraphics/updateHeatmap.m | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 plotly/plotlyfig_aux/handlegraphics/updateHeatmap.m diff --git a/plotly/plotlyfig_aux/handlegraphics/updateHeatmap.m b/plotly/plotlyfig_aux/handlegraphics/updateHeatmap.m new file mode 100644 index 00000000..9fad55fd --- /dev/null +++ b/plotly/plotlyfig_aux/handlegraphics/updateHeatmap.m @@ -0,0 +1,52 @@ +function obj = updateHeatmap(obj,heatIndex) + +%-------------------------------------------------------------------------% + +%-HEATMAP DATA STRUCTURE- % +heat_data = get(obj.State.Plot(heatIndex).Handle); +%-------------------------------------------------------------------------% + +%-heatmap type-% +obj.data{heatIndex}.type = 'heatmap'; + +%-------------------------------------------------------------------------% + +%-format data-% +obj.data{heatIndex}.x = heat_data.XData; +obj.data{heatIndex}.y = heat_data.YData; +obj.data{heatIndex}.z = heat_data.ColorData(end:-1:1, :); + +%-------------------------------------------------------------------------% + +%-heatmap colorscale-% +cmap = heat_data.Colormap; +len = length(cmap)-1; + +for c = 1: length(cmap) + col = 255 * cmap(c, :); + obj.data{heatIndex}.colorscale{c} = { (c-1)/len , ['rgb(' num2str(col(1)) ',' num2str(col(2)) ',' num2str(col(3)) ')' ] }; +end + +%-------------------------------------------------------------------------% + +%-setting plot-% +obj.data{heatIndex}.hoverinfo = 'text'; +obj.data{heatIndex}.text = heat_data.ColorData(end:-1:1, :); +obj.data{heatIndex}.hoverlabel.bgcolor = 'white'; + +%-------------------------------------------------------------------------% + +%-show colorbar-% +obj.data{heatIndex}.showscale = false; +if strcmpi(heat_data.ColorbarVisible, 'on') + obj.data{heatIndex}.showscale = true; +end + +%-------------------------------------------------------------------------% + +%-hist visible-% +obj.data{heatIndex}.visible = strcmp(heat_data.Visible,'on'); + +%-------------------------------------------------------------------------% + +end From b7dd590f98564a06d85d7037c894fc039cb43d51 Mon Sep 17 00:00:00 2001 From: Gilberto Galvis Date: Tue, 17 Aug 2021 09:03:46 -0400 Subject: [PATCH 8/8] fix issue #204 --- plotly/plotlyfig.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plotly/plotlyfig.m b/plotly/plotlyfig.m index 6dd40a6b..15a77540 100644 --- a/plotly/plotlyfig.m +++ b/plotly/plotlyfig.m @@ -661,7 +661,7 @@ function validate(obj) end catch % TODO to the future - disp('catch at line 660 in plotlyfog.m file') + % disp('catch at line 664 in plotlyfig.m file') end end