Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pandas.plotting doesn't show graph

I'm following the tutorial in the book "introduction to machine learning with python" and i've copied the following code:

#create dataframe from data in X_train
#label the colums using the strings in iris_dataset.features_names
iris_dataframe = pd.DataFrame(X_train, columns = iris_dataset.feature_names)
#create a scatter matrix from the dataframe, color by y_train
pd.plotting.scatter_matrix(iris_dataframe,c=y_train,
                           figsize=(15,15), marker='o', 
                           hist_kwds={'bins':20},s=60, 
                           alpha=.8,
                           cmap=mglearn.cm3)

It should plot a graph,but it only print those lines:

array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7f0d073934a8>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x7f0d07352908>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x7f0d07376e48>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x7f0d0732ee48>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x7f0d072e3f28>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x7f0d072e3f60>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x7f0d07308ac8>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x7f0d07211400>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x7f0d071ca470>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x7f0d07183470>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x7f0d071be470>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x7f0d07165e80>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x7f0d07127390>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x7f0d070e5390>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x7f0d0709d390>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x7f0d07047da0>]], dtype=object)

Can someone tell me a reason?

EDIT-SOLVED:I do not know why but a after a re-run of the cells, the graph apperead..

like image 371
michele Avatar asked Nov 29 '17 19:11

michele


1 Answers

pandas does not have a plotting library in itself. most users normally utilize the matplotlib library when plotting which has a different set of commands. Assuming you have all of the correct libraries installed including matplotlib I would end your code with:

import matplotlib.pyplot as plt
#assuming you got the correct conversion to a pandas dataframe  
pd.plotting.scatter_matrix(df,c=y_train,
                       figsize=(15,15), marker='o', 
                       hist_kwds={'bins':20},s=60, 
                       alpha=.8,
                       cmap=mglearn.cm3)


plt.show()

Here is a link to the matplotlib library that goes into the plt.show() There is also methods to save the figure, which can be found in the documentation here

like image 67
ListsAndThings Avatar answered Nov 12 '22 07:11

ListsAndThings