1 #ifndef MHO_BasicPlotVisitor_HH__
2 #define MHO_BasicPlotVisitor_HH__
11 #include <matplot/matplot.h>
35 class subplot_parameters
38 subplot_parameters(): total_rows(0), total_cols(0), start_row(0), start_col(0), rowspan(0), colspan(0){};
40 subplot_parameters(
int a,
int b,
int c,
int d,
int e,
int f)
41 : total_rows(a), total_cols(b), start_row(c), start_col(d), rowspan(e), colspan(f){};
43 virtual ~subplot_parameters(){};
54 std::map< std::string, subplot_parameters > fSubplotConfig;
56 void ConfigureSubplots();
58 void ConstructXTitle(
const subplot_parameters& params, std::string title, std::string font_color,
int font_size,
59 double x_coord,
double y_coord,
bool center =
false);
60 void ConstructYTitle(
const subplot_parameters& params, std::string title, std::string font_color,
int font_size,
63 void ConstructPlot(
const mho_json& plot_data);
64 void DirectSavePlot(std::string filename);
70 void make_dr_mbd_plot(
const mho_json& plot_dict);
76 void make_sbd_dtec_plot(
const mho_json& plot_dict);
82 void make_xpower_plot(
const mho_json& plot_dict);
88 void make_channel_segment_plots(
const mho_json& plot_dict);
94 void make_channel_segment_validity_plots(
const mho_json& plot_dict);
100 void make_pcal_plots(
const mho_json& plot_dict);
106 void make_top_info_text(
const mho_json& plot_dict);
112 void make_basic_info_text(
const mho_json& plot_dict);
118 void make_model_resid_info_text(
const mho_json& plot_dict);
124 void make_rms_table(
const mho_json& plot_dict);
130 void make_coord_text(
const mho_json& plot_dict);
136 void make_amplitude_table(
const mho_json& plot_dict);
142 void make_window_table(
const mho_json& plot_dict);
148 void make_data_stats_text(
const mho_json& plot_dict);
154 void make_channel_info_table(
const mho_json& plot_dict);
159 void setup_figure_layout();
161 double determine_desired_tick_spacing(
int n_ticks,
double lower_limit,
double upper_limit,
162 const std::vector< double >& desired_intervals)
165 double span = std::fabs(upper_limit - lower_limit);
166 double target = span / (double)n_ticks;
170 double tmin = 1e3 * upper_limit;
171 for(std::size_t i = 0; i < desired_intervals.size(); i++)
173 double delta = std::fabs(target - desired_intervals[i]);
180 double tick_spacing = desired_intervals[idx];
192 matplot::axes_handle subplot2grid(
const std::pair< int, int >& shape,
const std::pair< int, int >& loc,
int rowspan = 1,
193 int colspan = 1,
float left_margin = 0.0,
float right_margin = 0.0);
195 matplot::axes_handle subplot2grid_wrapper(
const subplot_parameters sp,
double left_margin = 0.0,
196 double right_margin = 0.0);
199 matplot::figure_handle fCurrentFigure;
201 std::string fFilename;
205 std::vector< matplot::axes_handle > fAxes;
206 matplot::axes_handle fLastAxis;
Definition: MHO_BasicPlotVisitor.hh:22
MHO_BasicPlotVisitor()
Definition: MHO_BasicPlotVisitor.cc:62
virtual void Plot(MHO_FringeData *data) override
Main plotting function - creates the complete fourfit plot.
Definition: MHO_BasicPlotVisitor.cc:234
virtual ~MHO_BasicPlotVisitor()
Definition: MHO_BasicPlotVisitor.cc:73
Class MHO_FringeData.
Definition: MHO_FringeData.hh:30
Class MHO_FringePlotVisitor.
Definition: MHO_FringePlotVisitor.hh:13
Definition: MHO_AdhocFlagging.hh:18