Skip to content
Snippets Groups Projects
Select Git revision
  • gitkeep
  • master default protected
  • development protected
  • QRCode/Size
  • sync-link-hdf5
  • feature/multi-scriptpaths
  • dev/plotID_Class
  • doc
  • V1.0.1
  • V1.0
  • V1.0-RC1
  • V0.2.2
  • V0.2.1
  • V0.2-RC1
  • V0.1
15 results

example.m

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    example.m 3.31 KiB
    %% Example Script
    % This Script is meant to demonstrate the capabilities of the PlotID tool.
    
    %% Clear Environment
    clear; clc; close all;
    
    try
        delete testdata2.h5;
    end
    
    %% Set ProjectID
    % ProjectID can also be set in the config file 
    
    % Leave empty for using the ID from the config file
    ProjectID = 'Example';
    
    %% Data
    % only necessary for this example
    
    % Creating Random Data to use as data-file
    x = linspace(0,7); y = rand(1,100)+2;
    dataset1 = 'test_data.mat';
    
    % Use absolute paths for good practise
    dataset1 = fullfile(pwd,dataset1);
    save(dataset1,'x','y');
    
    % some data for the .h5 file
    x1 = linspace(0,2*pi); y1 = sin(x1)+2;
    
    % define filepath & name
    dataset2 = 'testdata2.h5';
    dataset2 = fullfile(pwd,dataset2);
    fpath = dataset2;
    
    % create hdf5 file and dataset > write data to hdf5 file / dataset
    h5create(fpath, "/x1", size(x1), "Datatype", class(x1))
    h5create(fpath, "/y1", size(y1), "Datatype", class(y1))
    h5write(fpath, "/x1", x1)
    h5write(fpath, "/y1", y1)
    
    %% function calls
    % Place for post-processing of the data, or additional related code.
    % example_fcn is a dummy function to show the functionality
    a = 1; a = example_fcn(a); 
    p = betacdf(0.5,1,1); % to test toolboxes
    
    %% Plotting
    % This is still part of a normal script to produce plots.
    % Make sure to save each figure in a variable
    % to pass it to PlotID-functions.
    fig(1) = figure;
    plot(x,y,'-k');
    box off; hold on;
    plot(x1,y1,'-r');
    set(gca, 'TickDir', 'out', 'YLim', [0,4]);
    
    %% Example 1: single plot based on two data-sets
    
    %% Tag the plot
    % PlotID Implementation starts here.
    % TagPlot adds a visible ID to the figure(s) and to the figures property
    % 'Tag'
    [fig, ID] = PlotID.TagPlot(fig, 'ProjectID', ProjectID);
    
    %% Publishing
    % Second part of plotID 
    % The functions needs the file location of the script, the location of the
    % data and the figure and can take several options (see readme). 
    
    path.script = mfilename('fullpath'); % filename of the m.script
    % file names of the datasets
    
    %(defined above:) dataset1 = 'test_data.mat'; dataset2 = 'testdata2.h5'
    path.rdata =  {dataset1,dataset2} ; % don't forget the extension
    
    %call publishing
    PlotID.Publish(path, ID, fig(1), 'Location', 'local' ,'Method','individual')
    
    %% Example 2: multiple plots plot, all based on dataset2 (hdf5)
    % for individual data-sets, use an appropriate array
    
    fig(2) = figure;
    plot(x,y,'-b');
    box off; hold on;
    plot(x1,y1,'--k');
    set(gca, 'TickDir', 'out', 'YLim', [0,4]);
    
    % tag both plots 
    [fig, IDs] = PlotID.TagPlot(fig,'ProjectID', ProjectID);
    
    % data locations
    path.script = mfilename('fullpath'); % filename of the m.script
    % file names of the datasets
    path.rdata =  {dataset2} ; % don't forget the extension
    
    % publsihing via a for-loop
    for i=1: numel(fig)
        PlotID.Publish(path, IDs{i}, fig(i), 'Location', 'local',...
            'Method','individual');
    end
    
    %% Second Plot with identical data to test centralized method
    % A central data folder is used for saving the research data files, the
    % subfolders contain linked hdf5-files (if hdf5 is used). This is
    % recommended, if many plots are made from the same data set.  Attention,
    % the linked HDF5 will not work when a subfolder was moved or the data
    % folder was deleted
    
    fig2 =figure;
    plot(x,y,'-k');
    hold on
    plot(x1,y1,'-r');
    
    [fig2, ID] = PlotID.TagPlot(fig2,'ProjectID', ProjectID);
    
    PlotID.Publish(path, ID, fig2, 'Location', 'local','Method','centralized')