code: def plot_top_words(model, feature_names, n_top_words, title):
      fig, axes = plt.subplots(2, 5, figsize=(30, 15), sharex=True)
      axes = axes.flatten()
      for topic_idx, topic in enumerate(model.components_):
          top_features_ind = topic.argsort()[: -n_top_words - 1 : -1]
          top_features = [feature_names[i] for i in top_features_ind]
          weights = topic[top_features_ind]
  
          ax = axes[topic_idx]
          ax.barh(top_features, weights, height=0.7)
          ax.set_title(
              f"Topic {topic_idx +1}", fontdict={"fontsize": 30}
          )
          ax.invert_yaxis()
          ax.tick_params(axis="both", which="major", labelsize=20)
          for i in "top right left".split():
              ax.spines[i].set_visible(False)
          fig.suptitle(title, fontsize=40)
  
      plt.subplots_adjust(
          top=0.90, bottom=0.05, wspace=0.90, hspace=0.3
      )
      plt.show()
  
file_path: dgl/examples/pytorch/lda/example_20newsgroups.py
imports: import warnings
  from time import time
  import dgl
  import matplotlib.pyplot
  import numpy
  import scipy.sparse
  import torch
  from dgl import function
  from lda_model import LatentDirichletAllocation
  from sklearn.datasets import fetch_20newsgroups
  from sklearn.decomposition import LatentDirichletAllocation, NMF
  from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer
label_desc: Use image node_id 1 for calling a global function with example usage: plot_top_words(model, feature_names, n_top_words, title) without return types