analistica/ex-7/plot.py

36 lines
866 B
Python
Raw Normal View History

2020-03-06 02:24:32 +01:00
#!/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)
2020-04-03 23:27:58 +02:00
plt.rcParams['font.size'] = 30
2020-03-06 02:24:32 +01:00
w = loadtxt(sys.stdin, max_rows=2)
v = array([[0, -1], [1, 0]]) @ w
2020-03-06 02:24:32 +01:00
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')
2020-04-03 23:27:58 +02:00
scatter(*signal, edgecolor='#51492d', c='#dbbb4a', label='signal')
scatter(*noise, edgecolor='#512d3d', c='#d64d88', label='noise')
line(-20*w, 20*w, c='xkcd:blue', label='projection')
line(w-10*v, w+10*v, c='xkcd:red', label='cut')
xlim(-1.5, 8)
ylim(-1.5, 8)
2020-03-06 02:24:32 +01:00
figure()
sig_proj = np.dot(w, signal)
noise_proj = np.dot(w, noise)
2020-04-03 23:27:58 +02:00
hist(sig_proj, color='#dbbb4a')
hist(noise_proj, color='#d64d88')
2020-03-06 02:24:32 +01:00
axvline(cut, c='r')
show()