#!/usr/bin/env python from pylab import * import sys def line(x, y, **args): '''line between two points x,y''' plot([x[0], y[0]], [x[1], y[1]], **args) rcParams['font.size'] = 12 w = loadtxt(sys.stdin, max_rows=2) v = array([[0, -1], [1, 0]]) @ w cut = float(input()) n, m, d = map(int, input().split()) data = loadtxt(sys.stdin).reshape(n + m, d) signal, noise = data[:n].T, data[n:].T figure() subplot(aspect='equal') scatter(*signal, edgecolor='xkcd:charcoal', c='xkcd:dark yellow', label='signal') scatter(*noise, edgecolor='xkcd:charcoal', c='xkcd:pale purple', label='noise') line(-20*w, 20*w, c='xkcd:midnight blue', label='projection') line(w-10*v, w+10*v, c='xkcd:scarlet', label='cut') xlim(-1.5, 8) ylim(-1.5, 8) legend() tight_layout() figure() sig_proj = np.dot(w, signal) noise_proj = np.dot(w, noise) hist(sig_proj, color='xkcd:dark yellow', label='signal') hist(noise_proj, color='xkcd:pale purple', label='noise') axvline(cut, c='xkcd:scarlet') legend() tight_layout() show()