input: Write a function to train a decision tree using given data and visualize it using tree.plot_tree.
  assert train_and_visualize_tree({'c1': ['x','x','x','x','y','y','y','y'],'c2': ['g','g','d','d','g','g','d','d'],'c3': ['l','h','h','l','h','l','l','h'], 'target': ['0','0','0','0','1','1','1','1']}) is None
output: def train_and_visualize_tree(data):
      import pandas as pd
      from sklearn.tree import DecisionTreeClassifier
      from sklearn import tree
      import matplotlib.pyplot as plt
  
      df = pd.DataFrame(data)
      X = df.drop(columns=['target'])
      y = df['target']
  
      clf = DecisionTreeClassifier()
      clf = clf.fit(X, y)
  
      plt.figure(figsize=(20,10))
      tree.plot_tree(clf, filled=True, feature_names=X.columns, class_names=clf.classes_)
      plt.show()