input: Write a function to visually summarize the Twitter data. The function should process the Twitter data to extract the relevant data fields and generate three bar plots: one summarizing the number of tweets by author, one summarizing the number of likes per tweet, and one summarizing the number of retweets per tweet. If the Twitter data is empty, the function should return without plotting anything.
  assert visually_summarize_twitter_data([{'author': 'user1', 'text': 'Hello', 'likes': 5, 'retweets': 2}, {'author': 'user2', 'text': 'World', 'likes': 3, 'retweets': 1}])==None
  assert visually_summarize_twitter_data([])==None
output: def visually_summarize_twitter_data(twitter_data):
      if not twitter_data:
          return
      
      authors = [tweet['author'] for tweet in twitter_data]
      likes = [tweet['likes'] for tweet in twitter_data]
      retweets = [tweet['retweets'] for tweet in twitter_data]
      
      import matplotlib.pyplot as plt
      
      plt.figure(figsize=(15, 5))
      
      plt.subplot(1, 3, 1)
      plt.bar(authors, [authors.count(author) for author in set(authors)])
      plt.title('Number of Tweets by Author')
      plt.xlabel('Author')
      plt.ylabel('Number of Tweets')
      
      plt.subplot(1, 3, 2)
      plt.bar(range(len(likes)), likes)
      plt.title('Number of Likes per Tweet')
      plt.xlabel('Tweet Index')
      plt.ylabel('Number of Likes')
      
      plt.subplot(1, 3, 3)
      plt.bar(range(len(retweets)), retweets)
      plt.title('Number of Retweets per Tweet')
      plt.xlabel('Tweet Index')
      plt.ylabel('Number of Retweets')
      
      plt.tight_layout()
      plt.show()