import numpy as np import matplotlib.pyplot as plt n = 100 s1 = np.random.uniform(0,1,n) s2 = np.random.uniform(0,1,n) S = np.column_stack([s1, s2]) A = [[1,2],[3,1]] mix = np.dot(S,A) # make zero mean mix = np.subtract(mix, np.mean(mix)) # c = np.cov(mix) e = np.linalg.eig(c) plt.scatter(e[:,0], e[:,1]) plt.show()