\documentclass[12pt]{article}
\title{Interactive Plotting}
\author{FOSSEE}
\usepackage{listings}
\lstset{language=Python,
basicstyle=\ttfamily,
commentstyle=\itshape\bfseries,
showstringspaces=false,
}
\newcommand{\typ}[1]{\lstinline{#1}}
\usepackage[english]{babel}
\usepackage[latin1]{inputenc}
\usepackage{times}
\usepackage[T1]{fontenc}
\usepackage{ae,aecompl}
\usepackage{mathpazo,courier,euler}
\usepackage[scaled=.95]{helvet}
\begin{document}
\date{}
\vspace{-1in}
\begin{center}
\LARGE{Interactive Plotting}\\
\large{FOSSEE}
\end{center}
\section{Starting up...}
\begin{lstlisting}
$ ipython -pylab
\end{lstlisting}
Exiting
\begin{lstlisting}
In [2]: (Ctrl-D)^D
Do you really want to exit ([y]/n)? y
\end{lstlisting} %$
\section{Plotting}
\subsection{linspace}
\typ{In []: x = linspace(start, stop, num)}\\
\typ{linspace} returns array of length \typ{num}, for which \typ{x[0] = start} and \typ{x[num-1] = stop} \\
\emph{Please note indices of array starts from zero(0)}
\subsection{plot}
\typ{In []: plot(X, Y)}\\
For given arrays of equal length(above case X and Y), \typ{plot} plots the corresponding *x* and *y* pairs taken from X and Y.
\subsection{Colors of plots}
\typ{In []: plot(y, sin(y), 'g')}\\
Plots graph with green color. Other options available are:
\begin{lstlisting}
'r' ---> Red
'b' ---> Blue
'r' ---> Red
'c' ---> Cyan
'm' ---> Magenta
'y' ---> Yellow
'k' ---> Black
'w' ---> White
\end{lstlisting}
One can set the width of the plotline using optional argument \typ{linewidth}. For example:\\
\typ{In []: plot(x, cos(x), 'r', linewidth=2)}\\
Plots the line with linewidth = 2
\subsection{label and title}
\typ{In []: xlabel('Length') #sets *x* axis label to Length}\\
\typ{In []: ylabel('Time') #sets *y* axis label to Time.}\\
\typ{In []: title('Sinusoid') #sets title of plot}\\
\\
\textbf{Additionally}\\
Pylab accepts TeX equation expressions in any text expression. To get something like:\\
$\sigma_i=15$ \\
on title of figure use:
\begin{lstlisting}
In []: title('$\sigma_i=15$')
\end{lstlisting}
Same way one can have TeX expression on xlabel, ylabel etc.
\subsection{legends}
\typ{In []: legend('sin(x)',loc=center)} \\
Place a legend on the current plot at location *loc*.\\
Apart from \typ{center}, some other \typ{loc} which can be specified are:
\begin{lstlisting}
'best'
'right'
'upper right'
'upper left'
'lower left'
'lower right'
'center left'
'center right'
'lower center'
'upper center'
\end{lstlisting}
\newpage
One can also mention explicit co-ordinates for placement of legend.
\begin{lstlisting}
In []: legend(['sin(2y)'], loc=(.8,.1))
\end{lstlisting}
\typ{loc = 0, 1} (top left position of graph)\\
\typ{loc = 0.5, 0.5} (center of graph).
\subsection{Annotate}
\typ{In []: annotate('local max', xy=(1.5, 1))}\\
Annotates current plot with text, 'local max', at position specified to \typ{xy}.
\subsection{Saving figures}
\typ{In []: savefig('sinusoids.png')}\\
Saves the current figure with file name 'sinusoids.png' in current working directory. One can save figure in any of these formats: png, pdf, ps, eps and svg.
\subsection{Miscellaneous}
\typ{In []: clf() #Clears the current plot area}\\
\typ{In []: close() #Closes the figure}
\section{Saving and running scripts}
\begin{itemize}
\item \typ{\%hist}\\
It returns the logs of all commands(including mistakes) used in IPython interpreter.
\item \typ{\%hist -n}\\
It disables the line number representation of logs.
\item \typ{\%save four\_plot.py 16 18-27}\\
For creating a script named four\_plot which includes line 16 and line 18 to 27 of logs.
\item \typ{\%run -i four\_plot.py}\\
Running the python script inside IPython interpreter.
\end{itemize}
\section{Example}
\begin{lstlisting}
In []: x = linspace(0, 2*pi, 50)
In []: plot(x, sin(x), 'g')
In []: plot(x, cos(x), 'r', linewidth=2)
In []: xlabel('x')
In []: title('Sinusoidal Waves')
In []: legend(['sin(x)', 'cos(x)'])
In []: annotate('origin', xy=(0, 0))
In []: xmin, xman = xlim() # returns current X axis limits.
In []: ymin, ymax = ylim()
In []: xlim(0, 2 * pi) # sets the X axis limits to passed values
In []: ylim(ymin - 0.2, ymax + 0.2)
In []: savefig('sin.png') # Save figure
In []: close()
\end{lstlisting}
\section{References}
\begin{itemize}
\item For documentation on IPython refer: \\ http://ipython.scipy.org/moin/Documentation
\item Plotting(matplotlib) related documentation are available at:\\ http://matplotlib.sourceforge.net/contents.html
\item Explore examples and plots based on matplotlib at \\ http://matplotlib.sourceforge.net/examples/index.html
\end{itemize}
\end{document}