from math import pi
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

end=3*pi
z = np.linspace(0,end, 100)
phase_0 = pi/18
phase = pi/3

fig, ax = plt.subplots(figsize= (12.,4.))
ax.plot(z, np.sin(z+phase_0), 'k-')
ax.plot(z,np.sin(z+phase_0-phase), 'k--')
ax.arrow(pi/2-phase_0, 1, 2*pi, 0,  lw=2, head_width=0.05, head_length=0.09,length_includes_head=True)
ax.arrow(pi/2+2*pi-phase_0,1, -2*pi, 0, lw=2, head_width=0.05, head_length=0.09,length_includes_head=True)
ax.text(phase_0+pi + pi/2, 1.05, r'$\lambda = v_{\rm Ph}/\nu$', fontsize=18)
ax.arrow(-phase_0+pi/2+2*pi, 1, phase, 0., lw=2, head_width=0.05, head_length=0.09,length_includes_head=True)
ax.arrow(-phase_0 + pi/2 + 2*pi+phase, 1, -phase, 0, lw=2, head_width=0.05, head_length=0.09,length_includes_head=True)
ax.text(-phase_0 + pi/2+ 2*pi+phase/2, 1.05, r'$\Delta z = v_{\rm Ph} \cdot(t_2 - t_1)$', fontsize=18)
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
#ax.set_xlabel('z', fontsize=18)
#ax.set_ylabel('x', fontsize=18)
ax.text(end*1.05,-0.05,r'$z$', fontsize=18)
ax.text(0.1, 1.05, r'$x$',fontsize=18)
#ax.xaxis.set_label_coords(end*1.05,-0.05)
ax.spines['bottom'].set_position('center')
ax.set_xlim(0,end*1.05)
ax.arrow(end*1.05-0.005, 0., 0.01, 0., lw=1, head_width=0.05, head_length=0.09,length_includes_head=True)
ax.arrow(0, 1., 0., 0.1, lw=1, head_width=0.05, head_length=0.09,length_includes_head=True)
ax.text(2.5,-0.5,r'$t = t_1$', fontsize=18)
ax.text(7.,-0.5,r'$t = t_2$', fontsize=18)
ax.set_xticklabels([])
ax.set_yticklabels([])
plt.tick_params(axis='x', bottom=False)
plt.tick_params(axis='y', left=False)
plt.savefig('Welle-definitionen.eps',bounding_box='tight')
plt.savefig('Welle-definitionen.png',bounding_box='tight')
plt.show()
