<s> """<STR_LIT>""" <EOL> print ( __doc__ ) <EOL> import numpy as np <EOL> import matplotlib . pyplot as plt <EOL> from sklearn . decomposition import PCA , FastICA <EOL> rng = np . random . RandomState ( <NUM_LIT> ) <EOL> S = rng . standard_t ( <NUM_LIT> , size = ( <NUM_LIT> , <NUM_LIT:2> ) ) <EOL> S [ : , <NUM_LIT:0> ] *= <NUM_LIT> <EOL> A = np . array ( [ [ <NUM_LIT:1> , <NUM_LIT:1> ] , [ <NUM_LIT:0> , <NUM_LIT:2> ] ] ) <EOL> X = np . dot ( S , A . T ) <EOL> pca = PCA ( ) <EOL> S_pca_ = pca . fit ( X ) . transform ( X ) <EOL> ica = FastICA ( random_state = rng ) <EOL> S_ica_ = ica . fit ( X ) . transform ( X ) <EOL> S_ica_ /= S_ica_ . std ( axis = <NUM_LIT:0> ) <EOL> def plot_samples ( S , axis_list = None ) : <EOL> plt . scatter ( S [ : , <NUM_LIT:0> ] , S [ : , <NUM_LIT:1> ] , s = <NUM_LIT:2> , marker = '<STR_LIT:o>' , zorder = <NUM_LIT:10> , <EOL> color = '<STR_LIT>' , alpha = <NUM_LIT:0.5> ) <EOL> if axis_list is not None : <EOL> colors = [ '<STR_LIT>' , '<STR_LIT>' ] <EOL> for color , axis in zip ( colors , axis_list ) : <EOL> axis /= axis . std ( ) <EOL> x_axis , y_axis = axis <EOL> plt . plot ( <NUM_LIT:0.1> * x_axis , <NUM_LIT:0.1> * y_axis , linewidth = <NUM_LIT:2> , color = color ) <EOL> plt . quiver ( <NUM_LIT:0> , <NUM_LIT:0> , x_axis , y_axis , zorder = <NUM_LIT:11> , width = <NUM_LIT> , scale = <NUM_LIT:6> , <EOL> color = color ) <EOL> plt . hlines ( <NUM_LIT:0> , - <NUM_LIT:3> , <NUM_LIT:3> ) <EOL> plt . vlines ( <NUM_LIT:0> , - <NUM_LIT:3> , <NUM_LIT:3> ) <EOL> plt . xlim ( - <NUM_LIT:3> , <NUM_LIT:3> ) <EOL> plt . ylim ( - <NUM_LIT:3> , <NUM_LIT:3> ) <EOL> plt . xlabel ( '<STR_LIT:x>' ) <EOL> plt . ylabel ( '<STR_LIT:y>' ) <EOL> plt . figure ( ) <EOL> plt . subplot ( <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:1> ) <EOL> plot_samples ( S / S . std ( ) ) <EOL> plt . title ( '<STR_LIT>' ) <EOL> axis_list = [ pca . components_ . T , ica . mixing_ ] <EOL> plt . subplot ( <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> ) <EOL> plot_samples ( X / np . std ( X ) , axis_list = axis_list ) <EOL> legend = plt . legend ( [ '<STR_LIT>' , '<STR_LIT>' ] , loc = '<STR_LIT>' ) <EOL> legend . set_zorder ( <NUM_LIT:100> ) <EOL> plt . title ( '<STR_LIT>' ) <EOL> plt . subplot ( <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:3> ) <EOL> plot_samples ( S_pca_ / np . std ( S_pca_ , axis = <NUM_LIT:0> ) ) <EOL> plt . title ( '<STR_LIT>' ) <EOL> plt . subplot ( <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:4> ) <EOL> plot_samples ( S_ica_ / np . std ( S_ica_ ) ) <EOL> plt . title ( '<STR_LIT>' ) <EOL> plt . subplots_adjust ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) <EOL> plt . show ( ) </s>
