\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('Sinusoids') #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)} \\ Places 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}