From 68db9abb0980e9b2fe33e9fc2190629d0a2dc9d0 Mon Sep 17 00:00:00 2001 From: Houtan Bastani <houtan@dynare.org> Date: Thu, 22 May 2014 18:30:56 +0200 Subject: [PATCH] reporting: add new option graphShowInLegend to addSeries --- @graph/writeGraphFile.m | 2 +- @report_series/getNameForLegend.m | 31 ++++++++++++++++++++++++++++ @report_series/report_series.m | 2 ++ @report_series/writeSeriesForGraph.m | 1 + 4 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 @report_series/getNameForLegend.m diff --git a/@graph/writeGraphFile.m b/@graph/writeGraphFile.m index b379416..2b706a8 100644 --- a/@graph/writeGraphFile.m +++ b/@graph/writeGraphFile.m @@ -183,7 +183,7 @@ end for i=1:ne o.series{i}.writeSeriesForGraph(fid, dd); if o.showLegend - le = o.series{i}.getTexName(); + le = o.series{i}.getNameForLegend(); if ~isempty(le) fprintf(fid, '\\addlegendentry{%s}\n', le); end diff --git a/@report_series/getNameForLegend.m b/@report_series/getNameForLegend.m new file mode 100644 index 0000000..0748a8d --- /dev/null +++ b/@report_series/getNameForLegend.m @@ -0,0 +1,31 @@ +function s = getNameForLegend(o) +%function s = getNameForLegend(o) + +% Copyright (C) 2014 Dynare Team +% +% This file is part of Dynare. +% +% Dynare is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% Dynare is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with Dynare. If not, see <http://www.gnu.org/licenses/>. + +if isempty(o.data) || ~o.graphShowInLegend + % for the case when there is no data in the series + % e.g. graphVline was passed + % or when the user does not want this series shown in + % the legend + s = ''; +else + assert(size(o.data,2) == 1); + s = o.data.tex{:}; +end +end \ No newline at end of file diff --git a/@report_series/report_series.m b/@report_series/report_series.m index 7c708df..0fcb611 100644 --- a/@report_series/report_series.m +++ b/@report_series/report_series.m @@ -41,6 +41,8 @@ o.graphLineColor = 'black'; o.graphLineStyle = 'solid'; o.graphLineWidth = 0.5; +o.graphShowInLegend = true; + o.graphMarker = ''; o.graphMarkerEdgeColor = ''; o.graphMarkerFaceColor = ''; diff --git a/@report_series/writeSeriesForGraph.m b/@report_series/writeSeriesForGraph.m index 315d5c8..0d3123f 100644 --- a/@report_series/writeSeriesForGraph.m +++ b/@report_series/writeSeriesForGraph.m @@ -37,6 +37,7 @@ end assert(ischar(o.graphMiscTikzAddPlotOptions), ['@report_series.writeSeriesForGraph: ' ... 'graphMiscTikzAddPlotOptions file must be a string']); +assert(islogical(o.graphShowInLegend), '@graph.graph: graphShowInLegend must be either true or false'); % Line valid_graphLineColor = {'red', 'green', 'blue', 'cyan ', 'magenta', 'yellow', ... -- GitLab