347 lines
12 KiB
Plaintext
347 lines
12 KiB
Plaintext
// Copyright (C) 2010, Guy Barrand. All rights reserved.
|
|
// See the file tools.license for terms.
|
|
|
|
#ifndef tools_sg_plotter_some_styles
|
|
#define tools_sg_plotter_some_styles
|
|
|
|
// Functions to set some common styles.
|
|
// Typically ROOT_default (the default style of ROOT), hippodraw
|
|
// or return/reset to the default inlib style.
|
|
|
|
#include "plotter"
|
|
#include "style_colormap"
|
|
|
|
namespace tools {
|
|
namespace sg {
|
|
|
|
inline bool set_style_color(std::ostream& a_out,const cmaps_t& a_cmaps,const std::string& a_s,colorf& a_col){
|
|
if(!find_color(a_cmaps,a_s,a_col)) {
|
|
a_out << "tools::sg::set_style_color: color " << sout(a_s) << " not found." << std::endl;
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
// a_font = font_arialbd_ttf(); //idem ROOT 62.
|
|
// a_font = font_roboto_bold_ttf(); //open source replacement for arialbd.
|
|
|
|
inline void set_style_font(text_style& a_style,const std::string& a_font){
|
|
a_style.font = a_font;
|
|
a_style.front_face = winding_cw;
|
|
a_style.smoothing = true;
|
|
}
|
|
|
|
inline void set_ROOT_default_style(std::ostream& a_out,const cmaps_t& a_cmaps,plotter& a_plotter,const std::string& a_font) {
|
|
a_plotter.value_top_margin = 0.05f;
|
|
a_plotter.bottom_margin = 0.1f;
|
|
a_plotter.top_margin = 0.1f;
|
|
a_plotter.left_margin = 0.1f;
|
|
a_plotter.right_margin = 0.1f;
|
|
|
|
{style& _style = a_plotter.background_style();
|
|
_style.visible = true;
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.line_width = 0.003; // 0 = no border. In % of width.
|
|
}
|
|
|
|
{style& _style = a_plotter.grid_style();
|
|
_style.visible = false;
|
|
}
|
|
|
|
// plot title done with the title_box (and not plotter title):
|
|
{text_style& _style = a_plotter.title_style();
|
|
_style.visible = false;
|
|
}
|
|
{text_style& _style = a_plotter.title_box_style();
|
|
_style.visible = true;
|
|
if(!set_style_color(a_out,a_cmaps,"ROOT/grey19",_style.back_color.value())) {}
|
|
_style.back_shadow = 0.015f; //% of width.
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
set_style_font(_style,a_font);}
|
|
|
|
a_plotter.infos_width = 0.35f;
|
|
a_plotter.infos_x_margin = 0.01f; //from right border.
|
|
a_plotter.infos_y_margin = 0.005f; //from top border.
|
|
{text_style& _style = a_plotter.infos_style();
|
|
_style.visible = true;
|
|
if(!set_style_color(a_out,a_cmaps,"ROOT/grey19",_style.back_color.value())) {}
|
|
_style.back_shadow = 0.015f; //% of width.
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.modeling = infos_modeling_ROOT(); //to have histo name as info title.
|
|
set_style_font(_style,a_font);}
|
|
|
|
{style& _style = a_plotter.inner_frame_style();
|
|
_style.visible = true;
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.line_width = 1.0f;
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////
|
|
/// x axis: //////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////
|
|
{axis& _axis = a_plotter.x_axis();
|
|
_axis.modeling = tick_modeling_hplot();
|
|
_axis.divisions = 510;
|
|
_axis.title_hjust = right;
|
|
_axis.label_to_axis = 0.005f;
|
|
_axis.label_height = 0.04f;
|
|
_axis.tick_length = 0.03f;
|
|
_axis.title_to_axis = 0.05f; //YLAB = 0.05
|
|
_axis.title_height = 0.04f;
|
|
_axis.is_log = false;
|
|
|
|
{line_style& _style = _axis.line_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.width = 1.0f;}
|
|
|
|
{line_style& _style = _axis.ticks_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.width = 1.0f;}
|
|
|
|
{text_style& _style = _axis.labels_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.scale = 0.6; //To have a good matching with ROOT text size.
|
|
set_style_font(_style,a_font);}
|
|
|
|
{text_style& _style = _axis.title_style();
|
|
_style.visible = true;
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.scale = 0.6; //To have a good matching with ROOT text size.
|
|
set_style_font(_style,a_font);}
|
|
|
|
{text_style& _style = _axis.mag_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.scale = 0.6; //To have a good matching with ROOT text size.
|
|
set_style_font(_style,a_font);}
|
|
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////
|
|
/// y axis: //////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////
|
|
{axis& _axis = a_plotter.y_axis();
|
|
_axis.modeling = tick_modeling_hplot();
|
|
_axis.divisions = 510;
|
|
_axis.title_hjust = right;
|
|
_axis.label_to_axis = 0.005f;
|
|
_axis.label_height = 0.04f;
|
|
_axis.tick_length = 0.03f;
|
|
_axis.title_to_axis = 0.07f; //XLAB = 0.07
|
|
_axis.title_height = 0.04f;
|
|
_axis.is_log = false;
|
|
|
|
{line_style& _style = _axis.line_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.width = 1.0f;}
|
|
|
|
{line_style& _style = _axis.ticks_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.width = 1.0f;}
|
|
|
|
{text_style& _style = _axis.labels_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.scale = 0.6;
|
|
set_style_font(_style,a_font);}
|
|
|
|
{text_style& _style = _axis.title_style();
|
|
_style.visible = true;
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.scale = 0.6; //To have a good matching with ROOT text size.
|
|
set_style_font(_style,a_font);}
|
|
|
|
{text_style& _style = _axis.mag_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.scale = 0.6; //To have a good matching with ROOT text size.
|
|
set_style_font(_style,a_font);}
|
|
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////
|
|
/// z axis: //////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////
|
|
{axis& _axis = a_plotter.z_axis();
|
|
_axis.modeling = tick_modeling_hplot();
|
|
_axis.is_log = false;
|
|
|
|
{line_style& _style = _axis.line_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.width = 1.0f;}
|
|
|
|
{line_style& _style = _axis.ticks_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.width = 1.0f;}
|
|
|
|
{text_style& _style = _axis.labels_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.scale = 0.6;}
|
|
|
|
{text_style& _style = _axis.title_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.scale = 0.6;}
|
|
|
|
{text_style& _style = _axis.mag_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.scale = 0.6;}
|
|
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////
|
|
/// colormap axis: ///////////////////////////////////////
|
|
//////////////////////////////////////////////////////////
|
|
{axis& _axis = a_plotter.colormap_axis();
|
|
_axis.modeling = tick_modeling_hplot();
|
|
_axis.divisions = 510;
|
|
_axis.title_hjust = right;
|
|
_axis.label_to_axis = 0.005f;
|
|
_axis.label_height = 0.04f;
|
|
_axis.tick_length = 0.03f;
|
|
_axis.title_to_axis = 0.07f; //XLAB = 0.07
|
|
_axis.title_height = 0.04f;
|
|
_axis.is_log = false;
|
|
|
|
{line_style& _style = _axis.line_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.width = 1.0f;}
|
|
|
|
{line_style& _style = _axis.ticks_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.width = 1.0f;}
|
|
|
|
{text_style& _style = _axis.labels_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.scale = 0.6; //To have a good matching with ROOT text size.
|
|
set_style_font(_style,a_font);}
|
|
|
|
{text_style& _style = _axis.title_style();
|
|
_style.visible = true;
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.scale = 0.6; //To have a good matching with ROOT text size.
|
|
set_style_font(_style,a_font);}
|
|
|
|
{text_style& _style = _axis.mag_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.scale = 0.6; //To have a good matching with ROOT text size.
|
|
set_style_font(_style,a_font);}
|
|
|
|
}
|
|
|
|
{style& _style = a_plotter.bins_style(0);
|
|
_style.modeling = modeling_top_lines();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.line_width = 1.0f;
|
|
//_style.line_pattern = line_solid;
|
|
}
|
|
|
|
{style& _style = a_plotter.func_style(0);
|
|
_style.modeling = modeling_top_lines();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.line_width = 3.0f;
|
|
}
|
|
|
|
}
|
|
|
|
inline void set_hippodraw_style(std::ostream& a_out,const cmaps_t& a_cmaps,plotter& a_plotter,const std::string& a_font) {
|
|
// In memory of P.Kunz.
|
|
|
|
a_plotter.value_top_margin = 0.05f;
|
|
a_plotter.bottom_margin = 0.12f;
|
|
a_plotter.top_margin = 0.16f;
|
|
a_plotter.left_margin = 0.16f;
|
|
a_plotter.right_margin = 0.16f;
|
|
a_plotter.title_to_axis = 0.1f;
|
|
a_plotter.title_height = 0.03f;
|
|
|
|
{style& _style = a_plotter.grid_style();
|
|
_style.visible = false;}
|
|
{style& _style = a_plotter.inner_frame_style();
|
|
_style.visible = true;}
|
|
{text_style& _style = a_plotter.infos_style();
|
|
_style.visible = false;}
|
|
|
|
{text_style& _style = a_plotter.title_style();
|
|
set_style_font(_style,a_font);
|
|
_style.visible = true;}
|
|
|
|
//////////////////////////////////////////////////////////
|
|
/// x axis: //////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////
|
|
{axis& _axis = a_plotter.x_axis();
|
|
_axis.modeling = tick_modeling_hippo();
|
|
_axis.title_hjust = center;
|
|
_axis.label_to_axis = 0.015f;
|
|
_axis.title_to_axis = 0.07f;
|
|
_axis.title_height = 0.035f;
|
|
_axis.label_height = 0.02625f; //0.0175F * 1.5F
|
|
|
|
{text_style& _style = _axis.title_style();
|
|
_style.visible = true;
|
|
set_style_font(_style,a_font);}
|
|
|
|
{text_style& _style = _axis.labels_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
set_style_font(_style,a_font);}
|
|
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////
|
|
/// y axis: //////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////
|
|
{axis& _axis = a_plotter.y_axis();
|
|
_axis.modeling = tick_modeling_hippo();
|
|
_axis.title_hjust = center;
|
|
_axis.title_to_axis = 0.2f;
|
|
_axis.title_height = 0.035f;
|
|
_axis.label_height = 0.02625f; //0.0175F * 1.5F
|
|
|
|
{text_style& _style = _axis.title_style();
|
|
_style.visible = true;
|
|
set_style_font(_style,a_font);}
|
|
|
|
{text_style& _style = _axis.labels_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
set_style_font(_style,a_font);}
|
|
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////
|
|
/// z axis: //////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////
|
|
{axis& _axis = a_plotter.z_axis();
|
|
|
|
{text_style& _style = _axis.title_style();
|
|
_style.visible = true;
|
|
set_style_font(_style,a_font);}
|
|
|
|
{text_style& _style = _axis.labels_style();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
set_style_font(_style,a_font);}
|
|
|
|
}
|
|
|
|
{style& _style = a_plotter.bins_style(0);
|
|
_style.modeling = modeling_top_lines();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.line_width = 1.0f;
|
|
}
|
|
|
|
{style& _style = a_plotter.func_style(0);
|
|
_style.modeling = modeling_top_lines();
|
|
if(!set_style_color(a_out,a_cmaps,"black",_style.color.value())) {}
|
|
_style.line_width = 1.0f;
|
|
}
|
|
|
|
{style& _style = a_plotter.errors_style(0);
|
|
_style.visible = false;
|
|
}
|
|
|
|
}
|
|
|
|
inline void set_inlib_default_style(std::ostream&,const cmaps_t&,plotter& a_plotter,const std::string&) {
|
|
{axis& _axis = a_plotter.colormap_axis();
|
|
_axis.label_to_axis = 0.01f;}
|
|
}
|
|
|
|
}}
|
|
|
|
#endif
|