2017-03-04 61 views
1

下面的python代碼將顯示直方圖和散點圖的對圖。matplotlib如何知道在這段代碼中顯示什麼?

import pandas as pd 
import matplotlib.pyplot as plt 

from sklearn import datasets 

iris_dataset = datasets.load_iris() 
X = iris_dataset.data 
Y = iris_dataset.target 

iris_dataframe = pd.DataFrame(X, columns=iris_dataset.feature_names) 
# create a scatter matrix from the dataframe, color by y_train 
grr = pd.scatter_matrix(iris_dataframe, c=Y, figsize=(15, 15), marker='o', 
         hist_kwds={'bins': 20}, s=60, alpha=.8) 

plt.show() 

讓我感到困惑的是plt.show()怎麼知道要顯示什麼?沒有看到grr被分配到plt的代碼中的任何地方。 plt如何神奇地知道要顯示什麼?

回答

1

熊貓使用matplotlib來創建它的圖。完整的繪圖已由pandas.scatter_matrix命令創建。

pandas.scatter_matrix的返回是一個matplotlib軸的數組。這可以用來在創建後調整繪圖。
但是,這並不是必需的,因爲完整的繪圖已經作爲matplotlib圖存在。

當調用plt.show()時,任何出現在matplotlib狀態機中的數字都被簡單地繪製出來。由於存在一個數字(=由pandas.scatter_matrix創建的數字),它會顯示。