vec2d.pyfrom numpy import array
import matplotlib.pyplot as plt
o, x, y = array([0, 0]), array([3, 2]), array([1, 2])
arrows = [(o, x + y, 'b'), (o, x, 'r'), (x, y, 'g'),
(o, y, 'g'), (y, x, 'r')]
for p, v, c in arrows:
plt.quiver(p[0], p[1], v[0], v[1],
color=c, units='xy', scale=1)
plt.axis('scaled'), plt.xlim(0, 5), plt.ylim(0, 5), plt.show()
vec3d.pyfrom vpython import vec, arrow, mag
o = vec(0, 0, 0)
x, y, z = vec(1, 0, 0), vec(0, 1, 0), vec(0, 0, 1)
arrows = [(o, x + y), (x, y + z), (o, x + y + z), (o, x), (y, x),
(z, x), (y + z, x), (o, y), (x, y), (z, y), (x + z, y),
(o, z), (x, z), (y, z), (x + y, z)]
for p, v in arrows:
arrow(pos=p, axis=v, color=v, shaftwidth=mag(v) / 50)
func.pyfrom numpy import pi, sin, cos, linspace
import matplotlib.pyplot as plt
f = lambda x: x**2 + x + 1
g = lambda x: 3 * sin(x) + 4 * cos(x)
x = linspace(-pi, pi, 101)
plt.plot([-pi, pi], [0, 0])
for y in [f(x), g(x), f(x) + g(x)]:
plt.plot(x, y)
plt.show()
comp.pyfrom numpy import exp, pi, linspace
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
f = lambda n, x: exp(1j * n * x)
x = linspace(0, 2 * pi, 1001)
ax = Axes3D(plt.figure())
for n in range(-2, 3):
ax.plot(x, f(n, x).real, f(n, x).imag)
plt.show()
sound2.pyimport scipy.io.wavfile as wav
import numpy as np
import matplotlib.pyplot as plt
rate, Data = wav.read('mono.wav')
print(rate, Data.shape)
t = len(Data) / rate
dt = 1 / rate
print(t, dt)
x = np.arange(0, t, dt)
y = Data / 32768
if len(Data.shape) == 1:
plt.plot(x, y)
plt.xlim(0, t), plt.ylim(-1, 1), plt.show()
elif len(Data.shape) == 2:
fig, ax = plt.subplots(2)
for i in range(2):
ax[i].plot(x, y[:, i])
ax[i].set_xlim(0, t), ax[i].set_ylim(-1, 1)
plt.show()
chord.pyfrom numpy import arange, pi, sin
import scipy.io.wavfile as wav
import matplotlib.pyplot as plt
xmax, rate = 2, 22050
x = arange(0, xmax, 1 / rate)
def f(hz):
octave = [2 ** n for n in [0, 1, 2, -2, -1]]
return [sin(2 * pi * hz * n * x) * 0.9 for n in octave]
A = f(440.000000) # ラ
B = f(493.883301) # シ
C = f(523.251131) # ド
D = f(587.329536) # レ
E = f(659.255114) # ミ
F = f(698.456463) # ファ
G = f(783.990872) # ソ
CEG = (C[0] + E[0] + G[0]) / 3
Data = (CEG * 32768).astype('int16')
wav.write('CEG.wav', rate, Data)
for y in [C[0], E[0], G[0], CEG]:
plt.plot(x, y)
plt.xlim(1, 1.01), plt.show()