class_docstr: SmartPlotter is a Bridge pattern decoupling plotting functions from SmartExplainer.
  The smartplotter class includes all the methods used to display graphics
  Each SmartPlotter method is easy to use from a Smart explainer object,
  just use the following syntax
  Attributes :
  explainer: object
      SmartExplainer instance to point to.
  Example
  --------
  >>> xpl.plot.my_plot_method(param=value)
class_docstr_tok: ["SmartPlotter","is","a","Bridge","pattern","decoupling","plotting","functions","from","SmartExplainer",".","The","smartplotter","class","includes","all","the","methods","used","to","display","graphics","Each","SmartPlotter","method","is","easy","to","use","from","a","Smart","explainer","object",",","just","use","the","following","syntax","Attributes",":","explainer",":","object","SmartExplainer","instance","to","point","to",".","Example","--","--","--","--",">",">",">","xpl.plot.my_plot_method","(","param=value",")"]
docstr: Check for masked contributions and update features_values and contrib
  to take the sum of masked contributions into account.
  Parameters
  ----------
  line: list
      If the label is of string type, check if it can be changed to integer to select the
      good dataframe object.
  var_dict: numpy array
      Unidimensional numpy array containing the values for the observation of interest.
  x_val: numpy array
      Unidimensional numpy array containing the values for the observation of interest.
  contrib: numpy array
      Unidimensional numpy array containing the values for the observation of interest.
  Returns
  -------
  numpy arrays
      Input arrays updated with masked contributions.
code: def check_masked_contributions(
      self, line, var_dict, x_val, contrib, label=None
  ):
      """
      Check for masked contributions and update features_values and contrib
      to take the sum of masked contributions into account.
      Parameters
      ----------
      line: list
          If the label is of string type, check if it can be changed to integer to select the
          good dataframe object.
      var_dict: numpy array
          Unidimensional numpy array containing the values for the observation of interest.
      x_val: numpy array
          Unidimensional numpy array containing the values for the observation of interest.
      contrib: numpy array
          Unidimensional numpy array containing the values for the observation of interest.
      Returns
      -------
      numpy arrays
          Input arrays updated with masked contributions.
      """
      if hasattr(self.explainer, "masked_contributions"):
          if isinstance(self.explainer.masked_contributions, list):
              ext_contrib = (
                  self.explainer.masked_contributions[label]
                  .loc[line[0], :]
                  .values
              )
          else:
              ext_contrib = self.explainer.masked_contributions.loc[
                  line[0], :
              ].values
  
          ext_var_dict = [
              "Hidden Negative Contributions",
              "Hidden Positive Contributions",
          ]
          ext_x = ["", ""]
          ext_contrib = ext_contrib.tolist()
  
          exclusion = np.where(np.array(ext_contrib) == 0)[0].tolist()
          exclusion.sort(reverse=True)
          for ind in exclusion:
              del ext_var_dict[ind]
              del ext_x[ind]
              del ext_contrib[ind]
  
          var_dict.extend(ext_var_dict)
          x_val.extend(ext_x)
          contrib.extend(ext_contrib)
  
      return var_dict, x_val, contrib
  
imports: import warnings
  from numbers import Number
  import random
  import copy
  import math
  import numpy
  from scipy.optimize import fsolve
  import scipy.cluster.hierarchy
  import pandas
  from plotly import graph_objs
  import plotly.express
  from plotly.subplots import make_subplots
  from plotly.offline import plot
  from shapash.manipulation.select_lines import select_lines
  from shapash.manipulation.summarize import compute_features_import, project_feature_values_1d, compute_corr
  from shapash.utils.utils import add_line_break, truncate_str, compute_digit_number, add_text, maximum_difference_sort_value, compute_sorted_variables_interactions_list_indices, compute_top_correlations_features
  from shapash.webapp.utils.utils import round_to_k
  from shapash.style.style_utils import colors_loading, select_palette, define_style
label_desc: Use image node_id 12 for calling the SmartPlotter obj's underlying member method code with example usage: obj.check_masked_contributions(line, var_dict, x_val, contrib, label) and returns: var_dict,  x_val,  contrib