In [ ]:
from IPython.core.display import HTML
with open('../../common/creativecommons.html', 'r') as f:
html = f.read()
with open('../../common/custom.css', 'r') as f:
styles = f.read()
HTML(styles)
text = 'Check this post at'
uri = 'http://nbviewer.ipython.org/urls/raw.github.com/ocefpaf/python4oceanographers/master/content/downloads/notebooks'
name = get_notebook_name()
link = """<p>%s <a href="%s/%s"><em>nbviewer</em>.</a></p>""" % (text, uri, name)
html += str(link)
$\eta = A \cos(kx - \omega t + \phi)$
$T = \frac{1}{f} = \frac{2\pi}{\omega} \rightarrow \left[\text{s} \right] $
$\text{L ou } \lambda = \frac{2\pi}{k} \rightarrow \left[ \text{m} \right]$
In [ ]:
import matplotlib.pyplot as plt
def adjust_spines(ax,spines):
"""http://matplotlib.org/examples/pylab_examples/spine_placement_demo.html"""
for loc, spine in ax.spines.items():
if loc in spines:
spine.set_position(('outward', 10))
spine.set_smart_bounds(True)
else:
spine.set_color('none')
if 'left' in spines:
ax.yaxis.set_ticks_position('left')
else:
ax.yaxis.set_ticks([])
if 'bottom' in spines:
ax.xaxis.set_ticks_position('bottom')
else:
ax.xaxis.set_ticks([])
In [ ]:
twopi = 2 * np.pi
n = 2 # Duas ondas.
A = 2 # Amplitude = 2 metros.
w = twopi / 10 # T = 10 segundos.
k = twopi / 200 # lambda = 200 metros.
phi = np.deg2rad(270) # Fase [rad]
t = np.arange(0, 10 * n, 0.01) # Vetor tempo [s]
x = np.arange(0, 200 * n) # Vetor espaço [m]
y1 = A * np.cos(w * t - k * 0 + phi) # Um ponto do oceano.
y2 = A * np.cos(w * 0 - k * x - phi) # Uma "foto" de um instante.
In [ ]:
fig, (ax0, ax1) = plt.subplots(nrows=2, sharey=True, figsize=(6, 4))
fig.tight_layout()
ax0.set_ylim([-2.1, 2.1])
ax0.plot(t, y1, linewidth='2', color='#CC9900')
ax0.axhline(color='grey')
adjust_spines(ax0, ['left','bottom'])
ax1.plot(x, y2, linewidth='2', color='#99CC33')
ax1.axhline(color='grey')
adjust_spines(ax1, ['left','bottom'])
_ = plt.figtext(0, 0.5, 'Amplitude [m]', ha='right', va='center', rotation=90)
_ = plt.figtext(1.01, 0.5, u'Período [s]', color='#CC9900')
_ = plt.figtext(1.01, 0.05, u'Distância [m]', color='#99CC33')
fig.savefig('time_space_wave.svg')
In [ ]:
HTML(html)