import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
x = np.linspace(0, 5, 50)
y_cos = np.cos(x)
y_sin = np.sin(x)
plt.plot(x,y_cos, 'r--') # plot series of coordinates as a line
plt.plot(x,y_sin, 'b-')
plt.xlabel('x') # adds label to x axis
plt.ylabel('y') # adds label to y axis
plt.title('title') # adds a title
plt.show() # close a figure
from sklearn.datasets import make_blobs
D = make_blobs(n_samples=100, n_features=2,
centers=3, random_state=7)
groups = D[1]
coordinates = D[0]
plt.plot(coordinates[groups==0,0],
coordinates[groups==0,1],
'ys', label='group 0') # yellow square
plt.plot(coordinates[groups==1,0],
coordinates[groups==1,1],
'm*', label='group 1') # magenta stars
plt.plot(coordinates[groups==2,0],
coordinates[groups==2,1],
'rD', label='group 2') # red diamonds
plt.ylim(-2,10) # redefines the limits of y axis
plt.yticks([10,6,2,-2]) # redefines y axis ticks
plt.xticks([-15,-5,5,15]) # redefines x axis ticks
plt.grid() # adds a grid
plt.annotate('Squares', (-12,2.5)) # prints text at coordinates
plt.annotate('Stars', (0,6))
plt.annotate('Diamonds', (10,3))
plt.legend(loc='lower left', numpoints= 2) # places a legend of labelled items
plt.gcf().set_size_inches(8, 6)
plt.show()
x = np.random.normal(loc=0.0, scale=1.0, size=500)
z = np.random.normal(loc=3.0, scale=1.0, size=500)
plt.hist(np.column_stack((x,z)),
bins=20,
histtype='step', #'bar'
color = ['c','b'],
stacked=False)
plt.grid()
plt.show()
from sklearn.datasets import load_iris
iris = load_iris()
average = np.mean(iris.data, axis=0)
std = np.std(iris.data, axis=0)
range_ = range(np.shape(iris.data)[1])
plt.subplot(1,2,1) # defines 1 row, 2 columns panel, activates figure 1
plt.title('Horizontal bars')
plt.barh(range_,average, color="r",
xerr=std, alpha=0.4, align="center")
plt.yticks(range_, iris.feature_names)
plt.subplot(1,2,2) # defines 1 row 2 column panel, activates figure 2
plt.title('Vertical bars')
plt.bar(range_,average, color="b", yerr=std, alpha=0.4, align="center")
plt.xticks(range_, range_)
plt.show()
# from sklearn.datasets import fetch_olivetti_faces
dataset = fetch_olivetti_faces(shuffle=True, random_state=5)
photo = 1
for k in range(6):
plt.subplot(2, 3, k+1)
plt.imshow(dataset.data[k].reshape(64, 64),
cmap=plt.cm.gray,
interpolation='nearest')
plt.title('subject '+str(dataset.target[k]))
plt.axis('off')
plt.show()
downloading Olivetti faces from https://ndownloader.figshare.com/files/5976027 to /home/jovyan/scikit_learn_data
from sklearn.datasets import load_digits
digits = load_digits()
for number in range(1,10):
fig = plt.subplot(3, 3, number)
fig.imshow(digits.images[number],
cmap='binary',
interpolation='none',
extent=[0,8,0,8])
fig.set_xticks(np.arange(0, 9))
fig.set_yticks(np.arange(0, 9))
# fig.set_xticks(np.arange(0, 21))
# fig.set_yticks(np.arange(0, 21))
fig.grid()
plt.show()
plt.imshow(digits.images[0],
cmap='binary',
interpolation='none',
extent=[0,8,0,8])
# Extent defines the images max and min
# of the horizontal and vertical values
plt.grid()
iris_df = pd.DataFrame(iris.data, columns=iris.feature_names)
groups = list(iris.target)
iris_df['groups'] = pd.Series([iris.target_names[k] for k in groups])
boxplots = iris_df.boxplot(return_type='axes')
boxplots = iris_df.boxplot(column='sepal length (cm)',
by='groups',
return_type='axes')
densityplot = iris_df.plot(kind='density')
single_distribution = iris_df['petal width (cm)'].plot(kind='hist', alpha=0.5)
iris_df.columns
iris_df['groups'].value_counts()
colors_palette = {0: 'red', 1: 'yellow', 2:'blue'}
# groups represents the y label
colors = [colors_palette[c] for c in groups]
simple_scatterplot = iris_df.plot(kind='scatter', x=0, y=1, c=colors)
hexbin = iris_df.plot(kind='hexbin', x=0, y=1, gridsize=10)
from pandas.plotting import scatter_matrix
colors_palette = {0: "red", 1: "green", 2: "blue"}
colors = [colors_palette[c] for c in groups]
matrix_of_scatterplots = scatter_matrix(iris_df,
alpha=0.2,
figsize=(6, 6),
color=colors,
diagonal='kde')
from pandas.plotting import parallel_coordinates
pll = parallel_coordinates(iris_df,'groups')