This data sets consists of 3 different types of irises? (Setosa, Versicolour, and Virginica) petal and sepal length, stored in a 150x4 numpy.ndarray
The rows being the samples and the columns being: Sepal Length, Sepal Width, Petal Length and Petal Width.
The below plot uses the first two features. See here for more information on this dataset.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | print (__doc__) # Code source: Ga Varoquaux # Modified for documentation by Jaques Grobler # License: BSD 3 clause import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from sklearn import datasets from sklearn.decomposition import PCA # import some data to play with iris = datasets.load_iris() X = iris.data[:, : 2 ] # we only take the first two features. Y = iris.target x_min, x_max = X[:, 0 ]. min () - . 5 , X[:, 0 ]. max () + . 5 y_min, y_max = X[:, 1 ]. min () - . 5 , X[:, 1 ]. max () + . 5 plt.figure( 2 , figsize = ( 8 , 6 )) plt.clf() # Plot the training points plt.scatter(X[:, 0 ], X[:, 1 ], c = Y, cmap = plt.cm.Paired) plt.xlabel( 'Sepal length' ) plt.ylabel( 'Sepal width' ) plt.xlim(x_min, x_max) plt.ylim(y_min, y_max) plt.xticks(()) plt.yticks(()) # To getter a better understanding of interaction of the dimensions # plot the first three PCA dimensions fig = plt.figure( 1 , figsize = ( 8 , 6 )) ax = Axes3D(fig, elev = - 150 , azim = 110 ) X_reduced = PCA(n_components = 3 ).fit_transform(iris.data) ax.scatter(X_reduced[:, 0 ], X_reduced[:, 1 ], X_reduced[:, 2 ], c = Y, cmap = plt.cm.Paired) ax.set_title( "First three PCA directions" ) ax.set_xlabel( "1st eigenvector" ) ax.w_xaxis.set_ticklabels([]) ax.set_ylabel( "2nd eigenvector" ) ax.w_yaxis.set_ticklabels([]) ax.set_zlabel( "3rd eigenvector" ) ax.w_zaxis.set_ticklabels([]) plt.show() |
Total running time of the script: (0 minutes 0.155 seconds)
Download Python source code:
plot_iris_dataset.py
Download IPython notebook:
plot_iris_dataset.ipynb
Please login to continue.