Module functions.graphy.main_presentation
Functions
def add_combined_graphs_slide(info: dict, figures: list, title_text: str, subtitle_text: str, tag_text: str, group_images: bool = True, share_y_labels: bool = True) ‑> None-
combines a list of plotly figures onto a grid and saves it as a powerpoint slied
Args
info:dict- The presentation object
figures:list- list of plotly figures, make sure to use single instances of them, in doubt make a deepcopy
title_text:str- title_text
subtitle_text:str- subtitle_text
tag_text:str- tag_text
group_images:bool, optional- determines whether images are grouped in the slide. Defaults to True.
share_y_labels:bool, optional- determines whether images share the y axis labels row-wise. Defaults to True.
Raises
ValueError- if an invalid number of figures is entered, only 2 to 9 figures are valid
def add_graph_slide(info: dict, position_1_text: str, position_2_text: str, position_3_text: str) ‑> Nonedef add_table_slide(info: dict, title_text: str, table: pandas.core.frame.DataFrame, table_width: float = 22.5, table_height: float = 5.0, table_top_distance: float = 4.5, table_left_distance: float = 1.5, column_titles: Optional[None] = None, column_alignments: Optional[None] = None, column_widths: Optional[None] = None, bold_cells: Optional[None] = None, font_size: int = 14, row_heights: Optional[None] = None, cells_with_custom_color: Optional[None] = None, show_table_background_color: bool = True, title_font_size: int = 20, table_font_name: str = 'Leelawadee UI', cells_with_hyperlinks: Optional[None] = None) ‑> None-
Adds a table slide to the presentation
Args
info:dict- The presentation object
title_text:str- The title of the slide
table:pd.DataFrame- The table that should be added to the slide
table_width:float, optional- The width of the table. Defaults to 22.5.
table_height:float, optional- The height of the table. Defaults to 5.0.
column_alignments:Union[None, list[str]], optional- The alignment of the columns. Defaults to None. If None, all columns will be aligned left. If a list is passed, it should contain the alignment for each column in the table. The alignment can be 1 (left), 2 (center), or 3 (right).
column_titles:Union[None, list[str]], optional- The titles of the columns. Defaults to None. If None, the table will not have column titles. If a list is passed, it should contain the title for each column in the table.
column_widths:Union[None, list[int]], optional- The width of the columns. Defaults to None. If None, all columns will have the same width. If a list is passed, it should contain the width for each column in the table. The values should be integers and only the relative width is important.
bold_cells:Union[None, list[tuple[int, int]]], optional- The cells that should be bold. Defaults to None. If None, no cells will be bold. If a list is passed, it should contain the row and column index of the cells that should be bold.
font_size:int, optional- The font size of the text in the table. Defaults to 14.
row_heights:Union[None, list[float]], optional- The height of the rows. Defaults to None. If None, all rows will have the automatic height. If a list is passed, it should contain the height for each row in the table.
cells_with_custom_color:Union[None, dict], optional- The cells that should have a custom color. Defaults to None. If None, no cells will have a custom color. If a dictionary is passed, it should contain the row and column index of the cells as keys and the color as values. The color should be a string with the hex code of the color.
show_table_background_color:bool, optional- Determines if the table background color should be shown. Defaults to True.
title_font_size:int, optional- The font size of the title. Defaults to 20.
table_font_name:str, optional- The name of the font used in the whole table.
cells_with_hyperlinks:Union[None, dict], optional- The cells that should have a hyperlink. Defaults to None. If None, no cells will have a hyperlink. If a dictionary is passed, it should contain the row and column index of the cells as keys and the hyperlink as values. The hyperlink should be a string with the address of the hyperlink.
def add_text_slide(info: dict, text: Union[list[dict], list[str]], my_title: str = 'gfs-zürich, Markt- & Sozialforschung', vertical_alignment: str = 'top') ‑> None-
Adds a text slide to the presentation
Args
info:dict- The presentation object
text:Union[list[dict], list[str]]- The text that should be added to the slide. If a list of dictionaries is passed, each dictionary should contain a "text" key with the text that should be added to the slide. Additionally, the dictionary can contain a "size" key with the font size of the text, a "bold" key with a boolean value that determines if the text should be bold, a "hyperlink" key that adds a link as the value, a "alignment" key that changes the text alignment (left, center, right) and a "color" key with the color of the text. If a list of strings is passed, each string will be added to the slide as a paragraph.
my_title:str, optional- The title of the slide. Defaults to 'gfs-zürich, Markt- & Sozialforschung'.
vertical_alignment:str, optional- The vertical alignment of the text. Defaults to 'top'.
def add_to_graph_list(info: dict, position_1_text: str, position_2_text: str, position_3_text: str) ‑> Nonedef delete_all_files_in_folder(folder: str, file_type: str) ‑> Nonedef export_figure(info: dict, fig: plotly.graph_objs._figure.Figure) ‑> Nonedef save_presentation(info: dict) ‑> None-
Saves the presentation
Args
info:dict- The presentation object
def show_param_as_title(param, i, param_2='', j='')def start_presentation(name: str, df: pandas.core.frame.DataFrame, meta: pyreadstat._readstat_parser.metadata_container, output_path: str = './output/', template_path: str = './templates/', template_custom: str = 'auto', color_theme: str = 'standard', language: str = 'de', value_labels_color: int = 130, weight: str = '', line_width_linechart: int = 4, line_marker_size_linechart: int = 8, bar_width_barchart: float = 0.7, bar_width_stacked_barchart: float = 0.8, bar_gap_barchart: float = 0.15, break_distance: float = 0.5, count_name: str = 'N', logo_side: str = 'right', project_leader: str = None, project_people: list[str] = None, export_svg: bool = False, standard_arguments: dict = None, show_page_number: bool = False, use_wide_screen: bool = False) ‑> dict-
Creates a new presentation
Args
name:str- Changes the name of the presentation
df:pd.DataFrame- The current data file ~ usually df
meta:pyreadstat._readstat_parser.metadata_container- The current meta data file ~ usually meta
output_path:str, optional- Changes path and name of the output files. Defaults to "./output/".
template_path:str, optional- Sets path of pptx-template file. Defaults to './templates/'.
template_custom:str, optional- Choose a custom template. Defaults to 'auto'.
color_theme:str, optional- Sets color theme for graph. ~ 'test', 'gfs'. Defaults to 'standard'.
language:str, optional- Sets language for texts like subtitle and tag. ~ 'fr', 'en', 'it'. Defaults to 'de'.
value_labels_color:int, optional- Sets threshold for black or white label color. Use 0 for all black labels and 255 for all white. Use numbers between for a mix. Defaults to 130.
weight:str, optional- Turns weight on if weight variable name is added. ~ "gewicht". Defaults to ''.
bar_width_barchart:float, optional- Sets the width of the barchart bars. Defaults to 0.7.
bar_width_stacked_barchart:float, optional- Sets the width of the stacked barchart bars. Defaults to 0.8.
bar_gap_barchart:float, optional- Sets the gap between the bars within a group. Defaults to 0.15.
break_distance:float, optional- Sets the distance between the breaks. Defaults to 0.5.
count_name:str, optional- Changes the name of the count. ~ if "K" is passed in, counts look like "K = 42". Defaults to 'N'.
logo_side:str, optional- Changes the position of the logo on the presentation slides. ~ 'left'. Defaults to 'right'.
project_leader:str- The first name of the project leader. Can be "Andreas" for example. Defaults to None.
project_people:list[str], optional- A list of the names of the people working on the project. For example ["Andreas", "Nadia"]. Defaults to None.
export_svg:bool, optional- Exports graphs as .svg files if True. Defaults to False.
standard_arguments:dict, optional- Adds some standard arguments that normally don't need to be changed. Defaults to {}.
show_page_number:bool, optional- Turns page number on PowerPoint on and off ~ True. Defaults to False.
use_wide_screen:bool, optional- Turns slides into 16:9 widescreen format ~ True. Defaults to False.
Returns
dict- Returns a dictionary with presentation info, the presentation object and some info about the plot theme.