\documentclass[12pt]{article} \title{Plotting Points} \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{Plotting Points}\\ \large{FOSSEE} \end{center} \section{Plotting Points with Lists} \begin{lstlisting} In []: x = [0, 1, 2, 3] # Creating a list In []: y = [7, 11, 15, 19] In []: plot(x, y) In []: clf() In []: plot(x, y, 'o') # Plotting Circles \end{lstlisting} \subsection{Line style/marker} \begin{lstlisting} The following format string characters are accepted to control the line style or marker: ================ =============================== character description ================ =============================== '-' solid line style '--' dashed line style '-.' dash-dot line style ':' dotted line style '.' point marker ',' pixel marker 'o' circle marker 'v' triangle_down marker '^' triangle_up marker '<' triangle_left marker '>' triangle_right marker '1' tri_down marker '2' tri_up marker '3' tri_left marker '4' tri_right marker 's' square marker 'p' pentagon marker '*' star marker 'h' hexagon1 marker 'H' hexagon2 marker '+' plus marker 'x' x marker 'D' diamond marker 'd' thin_diamond marker '|' vline marker '_' hline marker ================ =============================== \end{lstlisting} \subsection{Marker combinations} \typ{In []: plot(x, y, 'ro')} \\ This plots figure with red colored filled circles.\\ Similarly other combination of colors and marker can be used. \section{Lists} Initializing \begin{lstlisting} In []: mtlist = [] # Empty List In []: lst = [ 1, 2, 3, 4, 5] \end{lstlisting} Slicing \begin{lstlisting} In []: lst[1:3] # A slice. Out[]: [2, 3] In []: lst[1:-1] Out[]: [2, 3, 4] \end{lstlisting} \subsection{Appending to lists} \begin{lstlisting} In []: a = [ 6, 7, 8, 9] In []: b = lst + a In []: b Out[]: [1, 2, 3, 4, 5, 6, 7, 8, 9] In []: lst.append(6) In []: lst Out[]: [ 1, 2, 3, 4, 5, 6] \end{lstlisting} \subsection{Iterating over a List} \begin{lstlisting} In []: for element in b: # Iterating over the list, element-wise ....: print element # Print each element ....: \end{lstlisting} \section{Strings} \subsection{Splitting Strings} \begin{lstlisting} In []: greet = ``hello world'' In []: print greet.split() Out[]: ['hello', 'world'] In []: greet = ``hello, world'' In []: print greet.split(',') Out[]: ['hello', ' world'] # Note the white space before 'world' \end{lstlisting} A string can be split based on the delimiter specified within quotes. A combination of more than one delimiter can also be used.\\ \typ{In []: greet.split(', ')}\\ \typ{Out[]: ['hello', 'world']}\\Note the white space is not there anymore. \newpage \section{Plotting from Files} \subsection{Opening files} \typ{In []: f = open('datafile.txt')}\\By default opens in read mode. \\If file does not exist then it throws an exception\\ \typ{In []: f = open('datafile.txt','r')}\\Specifying the read mode\\ \typ{In []: f = open('datafile.txt', 'w')}\\Opens the file in write mode. \\If the file already exists, then it deletes all the previous content and opens. \subsection{Reading from files} Just like lists files are iterable as well. \begin{lstlisting} In []: for line in f: ...: print line ...: ...: \end{lstlisting} \subsection{Plotting} \begin{lstlisting} l = [] t = [] for line in open('pendulum.txt'): point = line.split() l.append(float(point[0])) t.append(float(point[1])) tsq = [] for time in t: tsq.append(time*time) plot(l, tsq, '.') \end{lstlisting} \end{document}