code: def viz_boston(
      orientation="TD", max_depth=3, random_state=666, fancy=True
  ):
      regr = tree.DecisionTreeRegressor(
          max_depth=max_depth, random_state=random_state
      )
      boston = load_boston()
  
      regr = regr.fit(boston.data, boston.target)
  
      X = boston.data[np.random.randint(0, len(boston.data)), :]
  
      print(boston.feature_names)
      features = np.array(
          [
              "CRIM",
              "ZN",
              "INDUS",
              "CHAS",
              "NOX",
              "RM",
              "AGE",
              "DIS",
              "RAD",
              "TAX",
              "PTRATIO",
              "B",
              "LSTAT",
          ]
      )
      viz = dtreeviz(
          regr,
          boston.data,
          boston.target,
          target_name="price",
          feature_names=features,
          orientation=orientation,
          fancy=fancy,
          X=X,
      )
  
      export_graphviz(
          regr,
          out_file="/tmp/boston-scikit-tree.dot",
          filled=True,
          rounded=True,
          special_characters=True,
      )
  
      return viz
  
file_path: dtreeviz/testing/testone.py
imports: import graphviz
  from dtreeviz.shadow import *
  from gen_samples import *
  import tempfile
  from sklearn.tree import export_graphviz
label_desc: Use image node_id 2 for calling a global function with example usage: viz_boston(orientation, max_depth, random_state, fancy) and returns: viz