#!/usr/bin/python
# -*- coding: utf8 -*-
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
from math import *
code_website = 'http://commons.wikimedia.org/wiki/User:Geek3/mplwp'
try:
import mplwp
except ImportError, er:
print 'ImportError:', er
print 'You need to download mplwp.py from', code_website
exit(1)
name = 'mplwp_sec_csc_piaxis.svg'
fig = mplwp.fig_standard(mpl)
# add pi to xaxis labels
def flabel(x, i):
if x != int(x):
return ''
return u'{}\u03C0'.format(int(x)).replace('-', u'\u2212')
fig.gca().xaxis.set_major_formatter(mpl.ticker.FuncFormatter(flabel))
xlim = -2,2; fig.gca().set_xlim(xlim)
ylim = -5,5; fig.gca().set_ylim(ylim)
mplwp.mark_axeszero(fig.gca())
f1 = lambda x: 1.0 / cos(pi*x)
for i, trange in enumerate([ [(i-0.49), (i+0.49)] for i in range(-2, 3)]):
x = np.linspace(trange[0], trange[1], 1001)
y = [f1(xx) for xx in x]
if i == 0:
plt.plot(x, y, label='sec')
else:
plt.plot(x, y, color=fig.gca().lines[-1].get_color())
f2 = lambda x: 1.0 / sin(pi*x)
for i, trange in enumerate([[(i+0.01), (i+0.99)] for i in range(-2, 3)]):
x = np.linspace(trange[0], trange[1], 1001)
y = [f2(xx) for xx in x]
if i == 0:
plt.plot(x, y, label='csc')
else:
plt.plot(x, y, color=fig.gca().lines[-1].get_color())
mpl.rc('legend', borderaxespad=1.0)
plt.legend(loc='upper center', ncol=2).get_frame().set_alpha(0.9)
plt.savefig(name)
mplwp.postprocess(name)