input: Write a function to visually summarize the Twitter data. The function should process the Twitter data to extract relevant fields and plot summaries for tweet authors, number of likes, and number of retweets. If the input data is empty, the function should return without generating any plots.
  import matplotlib.pyplot as plt
  
  assert twitter_summary([{'author': 'user1', 'date': '2023-01-01', 'text': 'Hello', 'likes': 10, 'retweets': 2}, {'author': 'user2', 'date': '2023-01-02', 'text': 'Hi', 'likes': 5, 'retweets': 1}])
  assert twitter_summary([])
  assert twitter_summary([{'author': 'user1', 'date': '2023-01-01', 'text': 'Hello', 'likes': 10, 'retweets': 2}])
output: def twitter_summary(data):
      if not data:
          return
      
      authors = [tweet['author'] for tweet in data]
      likes = [tweet['likes'] for tweet in data]
      retweets = [tweet['retweets'] for tweet in data]
      
      fig, axs = plt.subplots(3, 1, figsize=(10, 15))
      
      axs[0].bar(authors, likes)
      axs[0].set_title('Number of Likes per Author')
      axs[0].set_xlabel('Author')
      axs[0].set_ylabel('Likes')
      
      axs[1].bar(authors, retweets)
      axs[1].set_title('Number of Retweets per Author')
      axs[1].set_xlabel('Author')
      axs[1].set_ylabel('Retweets')
      
      axs[2].scatter(likes, retweets)
      axs[2].set_title('Likes vs Retweets')
      axs[2].set_xlabel('Likes')
      axs[2].set_ylabel('Retweets')
      
      plt.tight_layout()
      plt.show()