title: When I use matplotlib in jupyter notebook,it always raise " matplotlib is currently using a non-GUI backend" error?
body: <pre><code>import matplotlib.pyplot as pl
  %matplot inline
  def learning_curves(X_train, y_train, X_test, y_test):
  """ Calculates the performance of several models with varying sizes of training data.
      The learning and testing error rates for each model are then plotted. """
  
  print ("Creating learning curve graphs for max_depths of 1, 3, 6, and 10. . .")
  
  # Create the figure window
  fig = pl.figure(figsize=(10,8))
  
  # We will vary the training set size so that we have 50 different sizes
  sizes = np.rint(np.linspace(1, len(X_train), 50)).astype(int)
  train_err = np.zeros(len(sizes))
  test_err = np.zeros(len(sizes))
  
  # Create four different models based on max_depth
  for k, depth in enumerate([1,3,6,10]):
  
      for i, s in enumerate(sizes):
  
          # Setup a decision tree regressor so that it learns a tree with max_depth = depth
          regressor = DecisionTreeRegressor(max_depth = depth)
  
          # Fit the learner to the training data
          regressor.fit(X_train[:s], y_train[:s])
  
          # Find the performance on the training set
          train_err[i] = performance_metric(y_train[:s], regressor.predict(X_train[:s]))
  
          # Find the performance on the testing set
          test_err[i] = performance_metric(y_test, regressor.predict(X_test))
  
      # Subplot the learning curve graph
      ax = fig.add_subplot(2, 2, k+1)
  
      ax.plot(sizes, test_err, lw = 2, label = 'Testing Error')
      ax.plot(sizes, train_err, lw = 2, label = 'Training Error')
      ax.legend()
      ax.set_title('max_depth = %s'%(depth))
      ax.set_xlabel('Number of Data Points in Training Set')
      ax.set_ylabel('Total Error')
      ax.set_xlim([0, len(X_train)])
  
  # Visual aesthetics
  fig.suptitle('Decision Tree Regressor Learning Performances', fontsize=18, y=1.03)
  fig.tight_layout()
  fig.show()
  </code></pre>
  
  <p>when I run the <code>learning_curves()</code> function, it shows:</p>
  
  <blockquote>
    <p>UserWarning:C:\Users\Administrator\Anaconda3\lib\site-packages\matplotlib\figure.py:397: UserWarning: matplotlib is currently using a non-GUI backend, so cannot show the figure</p>
  </blockquote>
  
  <p><img src="https://i.stack.imgur.com/OwJHy.png" alt="this is the screenshot"></p>