diff --git a/+PlotID/TagPlot.m b/+PlotID/TagPlot.m index b2e5b561647381b47449adb840b6eb1146587414..896e26e3ed32c8a066359c70fa302cbb99a17cd2 100644 --- a/+PlotID/TagPlot.m +++ b/+PlotID/TagPlot.m @@ -24,6 +24,7 @@ arguments options.Position (1,2) {mustBeVector} = [1,0.4] % default for east options.Rotation (1,1) {mustBeReal} = NaN options.ConfigFileName (1,:) {mustBeText} = 'config.json' + options.PinToLegend (1,1) {mustBeNumericOrLogical} = false % Pins ID on Legend options.QRcode (1,1) {mustBeNumericOrLogical} = false %experimental options.QRsize (1,1) {mustBeNonnegative} = 0.15 % size of the QRCode end @@ -36,7 +37,7 @@ end switch options.Location case 'north' - y = 1 - options.DistanceToAxis + y = 1 - options.DistanceToAxis; options.Position = [0.4,y]; Rotation = 0; case 'east' @@ -76,16 +77,35 @@ for n = 1:numel(figs) IDs{n} = PlotID.CreateID; % Create ID IDs{n} = [options.ProjectID,'-',IDs{n}]; % add options.ProjectID pltAxes = get(figs(n),'CurrentAxes'); % Axes object for text annotation - % Limits for relative Positioning + % Limits for relative positioning ylim =get(pltAxes,'YLim'); - xlim =get(pltAxes,'XLim'); - %ID - position = [options.Position(1), options.Position(2)]; + xlim =get(pltAxes,'XLim'); + + if options.PinToLegend + if options.QRcode + warning(['PinToLegend and QRCode can not be used at the same time',... + newline, 'QRcode is deactivated.']); + options.QRcode = false; + end + lobj = findobj(figs(n), 'Type', 'Legend'); + if isempty(lobj) + set(0, 'CurrentFigure', figs(n)) + lobj = legend(); + end + % new position based on legend + posVec = get(lobj,'Position'); + options.Position(1) = posVec(1)+.04; + options.Position(2) = posVec(2); + end + + % add text label + position = [options.Position(1), options.Position(2)]; t=text(pltAxes,position(1),position(2), IDs{n},'Fontsize',options.Fontsize,... 'Rotation',Rotation, 'VerticalAlignment','bottom','Color',... options.Color,'BackgroundColor','w', 'Units', 'normalized'); set(figs(n),'Tag', IDs{n}); + if options.QRcode % this should be seen and use as a proof of concept qrCode = PlotID.plotQR(IDs{n}); @@ -94,6 +114,8 @@ for n = 1:numel(figs) imshow(qrCode); t.Visible = 'off'; end + + end if numel(figs) == 1 diff --git a/CI_files/CI_config.json b/CI_files/CI_config.json deleted file mode 100644 index fd412c78ac60b4c4d38773b7dcd87bfe441e401d..0000000000000000000000000000000000000000 --- a/CI_files/CI_config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "Author": "CI-Test", - "ProjectID": "CI-001" -} \ No newline at end of file diff --git a/README.md b/README.md index 9dd799139662a52392c6e1bdc0088da7039ab204..5379313da8661fdf730975026852af94fe0ce2e4 100644 --- a/README.md +++ b/README.md @@ -48,12 +48,20 @@ you find the options for TagPlot below. The data type is in curled braces and th - ProjectID {mustBeText}= '' - Fontsize {mustBeInteger} = 8 +- Color {mustBeNonnegative} = 0.65*[1 1 1] - Location {mustBeText} = 'east' - Position {mustBeVector} = [1,0.4] -- Rotation {mustBeInteger} = 0 +- DistanceToAxis {mustBeReal} = .02 +- Rotation {mustBeInteger} = 0 +- PinToLegend {mustBeNumericOrLogical} = false +- QRcode {mustBeNumericOrLogical} = false +- QRsize {mustBeNonnegative} = 0.15 `options.ProjectID` is the project number (string or char), if empty the ID from the config file is used The ID is placed on the 'east' of the figure per default, if you want it somwhere else, use the `'Location'` option. 'north', 'east', 'south', 'west' are predefined, otherwise use the `'custom'` option and provide the desired 'Position' as a vector relative to your x- and y-axis limits `[relX, relY]` . + +`options.PinToLegend` pins the ID to the figure's legend. If no legend was defined, plotID will create one. + </details> ## CreateID()