class_docstr: The ProjectReport class allows to generate general information about a
  Data Science project.
  It analyzes the data and the model used in order to provide interesting
  insights that can be shared with non technical person.
  
  Parameters
  ----------
  explainer : shapash.explainer.smart_explainer.SmartExplainer
      A shapash SmartExplainer object that has already be compiled.
  project_info_file : str
      Path to the yml file containing information about the project (author, description, ...).
  config : dict, optional
      Contains configuration options for the report.
  
  Attributes
  ----------
  explainer : shapash.explainer.smart_explainer.SmartExplainer
       A shapash SmartExplainer object that has already be compiled.
  metadata : dict
      Information about the project (author, description, ...).
  x_train : pd.DataFrame
      DataFrame used for training the model.
  y_test : pd.Series or pd.DataFrame
      Series of labels in the train set.
  y_test : pd.Series or pd.DataFrame
      Series of labels in the test set.
  config : dict, optional
      Configuration options for the report.
class_docstr_tok: ["The","ProjectReport","class","allows","to","generate","general","information","about","a","Data","Science","project",".","It","analyzes","the","data","and","the","model","used","in","order","to","provide","interesting","insights","that","can","be","shared","with","non","technical","person",".","Parameters","--","--","--","--","--","explainer",":","shapash.explainer.smart_explainer.SmartExplainer","A","shapash","SmartExplainer","object","that","has","already","be","compiled",".","project_info_file",":","str","Path","to","the","yml","file","containing","information","about","the","project","(","author",",","description",",","...",")",".","config",":","dict",",","optional","Contains","configuration","options","for","the","report",".","Attributes","--","--","--","--","--","explainer",":","shapash.explainer.smart_explainer.SmartExplainer","A","shapash","SmartExplainer","object","that","has","already","be","compiled",".","metadata",":","dict","Information","about","the","project","(","author",",","description",",","...",")",".","x_train",":","pd.DataFrame","DataFrame","used","for","training","the","model",".","y_test",":","pd.Series","or","pd.DataFrame","Series","of","labels","in","the","train","set",".","y_test",":","pd.Series","or","pd.DataFrame","Series","of","labels","in","the","test","set",".","config",":","dict",",","optional","Configuration","options","for","the","report","."]
docstr: This method performs and displays an exploration of the data given.
  It allows to compare train and test values for each part of the analysis.
  
  The parameters of the method allow to filter which part to display or not.
  
  Parameters
  ----------
  global_analysis : bool
      Whether or not to display the global analysis part.
  univariate_analysis : bool
      Whether or not to display the univariate analysis part.
  target_analysis : bool
      Whether or not to display the target analysis part that plots
      the distribution of the target variable.
  multivariate_analysis : bool
      Whether or not to display the multivariate analysis part
docstr_tok: ["This","method","performs","and","displays","an","exploration","of","the","data","given",".","It","allows","to","compare","train","and","test","values","for","each","part","of","the","analysis",".","The","parameters","of","the","method","allow","to","filter","which","part","to","display","or","not",".","Parameters","--","--","--","--","--","global_analysis",":","bool","Whether","or","not","to","display","the","global","analysis","part",".","univariate_analysis",":","bool","Whether","or","not","to","display","the","univariate","analysis","part",".","target_analysis",":","bool","Whether","or","not","to","display","the","target","analysis","part","that","plots","the","distribution","of","the","target","variable",".","multivariate_analysis",":","bool","Whether","or","not","to","display","the","multivariate","analysis","part"]
code: def display_dataset_analysis(
      self,
      global_analysis: bool = True,
      univariate_analysis: bool = True,
      target_analysis: bool = True,
      multivariate_analysis: bool = True,
  ):
      """
      This method performs and displays an exploration of the data given.
      It allows to compare train and test values for each part of the analysis.
  
      The parameters of the method allow to filter which part to display or not.
  
      Parameters
      ----------
      global_analysis : bool
          Whether or not to display the global analysis part.
      univariate_analysis : bool
          Whether or not to display the univariate analysis part.
      target_analysis : bool
          Whether or not to display the target analysis part that plots
          the distribution of the target variable.
      multivariate_analysis : bool
          Whether or not to display the multivariate analysis part
      """
      if global_analysis:
          print_md("### Global analysis")
          self._display_dataset_analysis_global()
  
      if univariate_analysis:
          print_md("### Univariate analysis")
          self._perform_and_display_analysis_univariate(
              df=self.df_train_test,
              col_splitter="data_train_test",
              split_values=["test", "train"],
              names=["Prediction dataset", "Training dataset"],
              group_id="univariate",
          )
      if target_analysis:
          df_target = self._create_train_test_df(
              test=pd.DataFrame(
                  {self.target_name: self.y_test},
                  index=range(len(self.y_test)),
              )
              if self.y_test is not None
              else None,
              train=pd.DataFrame(
                  {self.target_name: self.y_train},
                  index=range(len(self.y_train)),
              )
              if self.y_train is not None
              else None,
          )
          if df_target is not None:
              if target_analysis:
                  print_md("### Target analysis")
                  self._perform_and_display_analysis_univariate(
                      df=df_target,
                      col_splitter="data_train_test",
                      split_values=["test", "train"],
                      names=["Prediction dataset", "Training dataset"],
                      group_id="target",
                  )
      if multivariate_analysis:
          print_md("### Multivariate analysis")
          fig_corr = self.explainer.plot.correlations(
              self.df_train_test,
              facet_col="data_train_test",
              max_features=20,
              width=900
              if len(self.df_train_test["data_train_test"].unique()) > 1
              else 500,
              height=500,
          )
          print_html(plotly.io.to_html(fig_corr))
      print_md("---")
  
imports: from typing import Optional, Union, Tuple
  import logging
  import sys
  import os
  from numbers import Number
  from datetime import date
  import jinja2
  import pandas
  import numpy
  import plotly
  from shapash.utils.transform import inverse_transform, apply_postprocessing, handle_categorical_missing
  from shapash import SmartExplainer
  from shapash.utils.io import load_yml
  from shapash.utils.utils import get_project_root, truncate_str
  from shapash.report.visualisation import print_md, print_html, print_css_style, convert_fig_to_html, print_javascript_misc
  from shapash.report.data_analysis import perform_global_dataframe_analysis, perform_univariate_dataframe_analysis
  from shapash.report.plots import generate_fig_univariate, generate_confusion_matrix_plot
  from shapash.report.common import series_dtype, get_callable, compute_col_types, VarType, display_value
  from shapash.webapp.utils.utils import round_to_k
label_desc: Use image node_id 7 for calling the ProjectReport obj's underlying member method code with example usage: obj.display_dataset_analysis(global_analysis, univariate_analysis, target_analysis, multivariate_analysis) without return types