code: def _printer(figure=None):
      if not figure:
          d = _get_params()
          keys = list(d["figures"].keys())
          keys.sort()
          print(
              "Use 'cufflinks.help(figure)' to see the list of available parameters for the given figure."
          )
          print(
              "Use 'DataFrame.iplot(kind=figure)' to plot the respective figure"
          )
          print("Figures:")
          for k in keys:
              print("\t{0}".format(k))
      else:
          figure = _get_aka(figure)
          fig = _help(figure)
          print(figure.upper())
          if type(fig["description"]) == str:
              print(fig["description"])
          else:
              for _ in fig["description"]:
                  print(_)
          print("\n")
          print("Parameters:\n{0}".format("=" * 11))
  
          def get_tabs(val):
              return " " * 4 * val
  
          def print_params(params, tabs=0):
              _keys = list(params.keys())
              _keys.sort()
              positions = {}
              for k, v in params.items():
                  if v.get("position", False):
                      positions[k] = int(v["position"])
              for k, v in positions.items():
                  if v == -1:
                      _keys.append(_keys.pop(_keys.index(k)))
                  else:
                      _keys.insert(v, _keys.pop(_keys.index(k)))
              for k in _keys:
                  v = params[k]
                  print(
                      "{0}{1} : {2}".format(
                          get_tabs(tabs), k, v["type"]
                      )
                  )
                  if type(v["description"]) == str:
                      print(
                          "{0}{1}".format(
                              get_tabs(tabs + 1), v["description"]
                          )
                      )
                  else:
                      for __ in v["description"]:
                          print("{0}{1}".format(get_tabs(tabs + 1), __))
  
          # Params
          print_params(fig["parameters"][figure].pop("params"), 1)
          print("\n")
          print_params(fig["parameters"]["all"].pop("params"), 1)
          d = utils.deep_update(
              fig["parameters"][figure], fig["parameters"]["all"]
          )
  
          for k, v in d.items():
              print("\n{0}{1}".format(get_tabs(1), k.upper()))
              print_params(v, 2)
  
          if "examples" in fig:
              print("\nEXAMPLES")
              for _ in fig["examples"]:
                  print("{0}>> {1}".format(get_tabs(1), _))
  
imports: import json
  import os
  from .None import utils
label_desc: Use image node_id 4 for calling a global function with example usage: _printer(figure) and returns: unknown