From f56ae2fa8cfa977554594a12579807367cb9e1e3 Mon Sep 17 00:00:00 2001 From: Thomas Lambert <t.lambert@uliege.be> Date: Fri, 9 Dec 2022 01:33:33 +0100 Subject: [PATCH] feat(figures): add save figure --- utils/plotwindonoff.m | 81 +++++++++++++++++++++++++++++++------------ utils/save2tikz.m | 30 ++++++++++++++++ 2 files changed, 88 insertions(+), 23 deletions(-) create mode 100644 utils/save2tikz.m diff --git a/utils/plotwindonoff.m b/utils/plotwindonoff.m index d9cb787..f5ef548 100644 --- a/utils/plotwindonoff.m +++ b/utils/plotwindonoff.m @@ -15,7 +15,11 @@ function plotwindonoff(ResData) 0.10, 2.5, 7.7 0.10, 3.5, 2.5 0.10, 3.5, 4.6 - 0.10, 3.5, 7.7]; + 0.10, 3.5, 7.7 + ]; + + PLOT_TIME = false; + SAVE_TIKZ_PARAM = INTERESTING_POINTS(2, :); for i = 1:size(ResData, 1) for j = 1:size(ResData, 2) @@ -51,44 +55,54 @@ function plotwindonoff(ResData) period = 1 / windOff.trueFreq; nPeriodIdx = period * sampling; - time = (0:length(meanDiff) - 1) / nPeriodIdx; - - figure; - hold on; - plot(time, meanPeakFoff); - plot(time, meanPeakFon); - plot(time, meanDiff); - yyaxis right; - plot(time, meanPeakAngle); - title(expParam); - legend('Wind off', 'Wind on', 'Diff'); - grid on; - xlim([0, 1]); + if PLOT_TIME + time = (0:length(meanDiff) - 1) / nPeriodIdx; + + figure; + hold on; + plot(time, meanPeakFoff); + plot(time, meanPeakFon); + plot(time, meanDiff); + yyaxis right; + plot(time, meanPeakAngle); + title(expParam); + legend('Wind off', 'Wind on', 'Diff'); + grid on; + xlim([0, 1]); + end figure; ax1 = subplot(3, 1, 1); hold on; plot(meanPeakAngle, meanPeakFon); - plot(meanPeakAngle(round(end / 5)), meanPeakFon(round(end / 5)), 'or'); - - title(['Wind on - ', expParam]); + % plot(meanPeakAngle(round(end / 5)), meanPeakFon(round(end / 5)), 'or'); + setgca(); + set(gca, 'XTickLabel', []); ax2 = subplot(3, 1, 2); hold on; - plot(meanPeakAngle, meanPeakFoff); - plot(meanPeakAngle(round(end / 5)), meanPeakFoff(round(end / 5)), 'or'); - - title(['Wind off - ', expParam]); + % plot(meanPeakAngle(round(end / 5)), meanPeakFoff(round(end / 5)), 'or'); + setgca(); + set(gca, 'XTickLabel', []); ax3 = subplot(3, 1, 3); hold on; plot(meanPeakAngle, meanDiff); - plot(meanPeakAngle(round(end / 5)), meanDiff(round(end / 5)), 'or'); - title(['Diff - ', expParam]); + % plot(meanPeakAngle(round(end / 5)), meanDiff(round(end / 5)), 'or'); linkaxes([ax1 ax2 ax3], 'xy'); ax1.YLim = 1.25 * ax1.YLim; + setgca(); + xlabel('Flapping angle [deg]'); + + if isinteresting(ResData(i, j), SAVE_TIKZ_PARAM) + save2tikz('figures/test.tex', '\small'); + else + title(ax1, ['Wind on - ', expParam]); + title(ax2, ['Wind off - ', expParam]); + title(ax3, ['Diff - ', expParam]); + end end @@ -115,3 +129,24 @@ function meanPeak = averagepeaks(signal, sampling, freq) meanPeak = mean(peakVals); end + +function setgca() + set(gca, ... + 'Box', 'off', ... + 'TickDir', 'out', ... + 'TickLength', [.02 .02], ... + 'XMinorTick', 'off', ... + 'YMinorTick', 'off', ... + 'YGrid', 'off', ... + 'XGrid', 'off', ... + 'XColor', 'k', ... + 'YColor', 'k', ... + 'GridLineStyle', ':', ... + 'GridColor', 'k', ... + 'GridAlpha', 0.25, ... + 'LineWidth', 1, ... + 'FontName', 'Helvetica', ... + 'Fontsize', 14); + + ylabel('\cfz [N]'); +end diff --git a/utils/save2tikz.m b/utils/save2tikz.m new file mode 100644 index 0000000..5f5bcc9 --- /dev/null +++ b/utils/save2tikz.m @@ -0,0 +1,30 @@ +function save2tikz(filename, tikzFontSize) + % SAVE2TIKZ Saves the current figure to tikz. + % This function defines sane defaults to use for saving figures in Tikz format. + % Todo + + % ---------------------------------------------------------------------------------------------- + % (c) Copyright 2022 University of Liege + % Author: Thomas Lambert <t.lambert@uliege.be> + % ULiege - Aeroelasticity and Experimental Aerodynamics + % MIT License + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + set(gcf, 'PaperPositionMode', 'auto'); + + % Tikz options + if nargin < 2 + tikzFontSize = '\normalsize'; + end + + extraTikzOptions = [ ... + 'xlabel style={font=', tikzFontSize, '},'... + 'ylabel style={font=', tikzFontSize, '},'... + 'zlabel style={font=', tikzFontSize, '}' ... + ]; + + matlab2tikz(filename, ... + 'width', '\fwidth', ... % This allows us to edit the width in latex easily + 'extraAxisOptions', extraTikzOptions, ... + 'showinfo', false); +end -- GitLab