other_types_of_plots/script.rst
author Puneeth Chaganti <punchagan@fossee.in>
Thu, 02 Dec 2010 14:43:42 +0530
changeset 523 54bdda4aefa5
permissions -rw-r--r--
Renamed some LOs and other minor corrections.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
523
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
     1
.. Objectives
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
     2
.. ----------
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
     3
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
     4
.. At the end of this tutorial, you will be able to 
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
     5
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
     6
.. 1. Create scatter plot
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
     7
.. #. Create pie charts
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
     8
.. #. Create bar charts
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
     9
.. #. Create log-log plots.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    10
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    11
.. Prerequisites
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    12
.. -------------
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    13
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    14
..   1. should have ``ipython`` and ``pylab`` installed. 
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    15
..   #. getting started with ``ipython``.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    16
..   #. loading data from files
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    17
..   #. plotting the data
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    18
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    19
     
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    20
.. Author              : Anoop Jacob Thomas <anoop@fossee.in>
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    21
   Internal Reviewer   : Puneeth
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    22
   External Reviewer   :
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    23
   Language Reviewer   : Bhanukiran
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    24
   Checklist OK?       : <10-11-2010, Anand, OK> [2010-10-05]
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    25
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    26
.. #[Puneeth: Quickref missing]
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    27
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    28
===================
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    29
Other type of plots
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    30
===================
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    31
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    32
{{{ show the first slide }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    33
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    34
Hello and welcome to the tutorial ``The other kinds of plots``.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    35
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    36
.. #[Puneeth: this sentence doesn't read well]
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    37
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    38
{{{ show the outline slide }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    39
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    40
.. #[Puneeth: motivate looking at other plots. Why are we looking at
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    41
.. them? Tell that we have only looked at one type of plot all the
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    42
.. while, etc.]
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    43
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    44
Till now we have seen only one kind of plotting, and in this tutorial we
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    45
are going to see more kinds of plots such as the scatter plot, the pie chart, the bar chart and
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    46
the log-log plot. This tutorial covers the making of other kinds of
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    47
plots and also gives an introduction to matplotlib help.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    48
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    49
.. #[Puneeth: cover, see and introduce you. be consistent. does, the
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    50
.. "We" include the viewer or not?]
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    51
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    52
Let us start with scatter plot. 
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    53
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    54
{{{ switch to the next slide, scatter plot }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    55
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    56
In a scatter plot, the data is displayed as a collection of points,
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    57
each having the value of one variable determining the position on the
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    58
horizontal axis and the value of the other variable determining the
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    59
position on the vertical axis. This kind of plot is also called a
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    60
scatter chart, a scatter diagram or a scatter graph.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    61
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    62
Before we proceed further, start your IPython interpreter
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    63
::
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    64
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    65
    ipython -pylab
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    66
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    67
{{{ open the ipython interpreter in the terminal using the command
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    68
ipython -pylab }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    69
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    70
{{{ switch to the next slide having the problem statement of first
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    71
exercise }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    72
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    73
Now, let us plot a scatter plot showing the percentage profit of
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    74
a company A from the year 2000-2010. The data for the same is available
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    75
in the file ``company-a-data.txt``.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    76
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    77
{{{ open the file company-a-data.txt and show the content }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    78
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    79
The data file has two lines with a set of values in each line, the
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    80
first line representing years and the second line representing the
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    81
profit percentages.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    82
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    83
{{{ close the file and switch to the terminal }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    84
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    85
To produce the scatter plot, we first need to load the data from the
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    86
file using ``loadtxt``. We learned it in one of the previous sessions,
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    87
and it can be done as ::
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    88
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    89
    year,profit =
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    90
    loadtxt('/home/fossee/other-plot/company-a-data.txt',dtype=type(int()))
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    91
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    92
By default loadtxt converts the value to float. The
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    93
``dtype=type(int())`` argument in loadtxt converts the value to
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    94
integer as we require the data as integer further in the tutorial.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    95
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    96
.. #[Puneeth: make a remark about dtype, that has not been covered in
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    97
.. the loadtxt tutorial.]
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    98
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
    99
{{{ switch to next slide, ``scatter`` function }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   100
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   101
Now in-order to generate the scatter graph we will use the function 
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   102
``scatter()`` 
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   103
::
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   104
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   105
	scatter(year,profit)
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   106
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   107
Notice that we passed two arguments to ``scatter()`` function, first
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   108
one the values in x-coordinate, year, and the other the values in
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   109
y-coordinate, the profit percentage.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   110
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   111
{{{ switch to the next slide which has the problem statement of
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   112
problem to be tried out }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   113
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   114
Now here is a question for you to try out, plot the same data with red
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   115
diamonds markers. 
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   116
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   117
.. **Clue** - *try scatter? in your ipython interpreter* 
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   118
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   119
Pause here and solve the question before moving on.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   120
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   121
.. scatter(year,profit,color='r',marker='d')
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   122
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   123
Now let us see another kind of plot, the pie chart, for the same data.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   124
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   125
.. #[Puneeth: instead of just saying that, say that let's plot a pie
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   126
.. chart for the same data. continuity, will be good.]
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   127
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   128
{{{ switch to the slide which says about pie chart }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   129
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   130
A pie chart or a circle graph is a circular chart divided into
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   131
sectors, illustrating proportion.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   132
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   133
{{{ switch to the slide showing the problem statement of second
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   134
exercise question }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   135
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   136
Plot a pie chart representing the profit percentage of company A, with
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   137
the same data from file ``company-a-data.txt``. So let us reuse the
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   138
data we have loaded from the file previously.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   139
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   140
.. #[Puneeth, this part can be move above.]
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   141
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   142
{{{ switch to next slide, ``pie()`` function }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   143
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   144
We can plot the pie chart using the function ``pie()``.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   145
::
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   146
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   147
   pie(profit,labels=year)
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   148
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   149
Notice that we passed two arguments to the function ``pie()``. First
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   150
one the values and the next one the set of labels to be used in the
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   151
pie chart.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   152
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   153
{{{ switch to the next slide which has the problem statement of
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   154
problem to be tried out }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   155
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   156
Now here is a question for you to try out, plot a pie chart with the
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   157
same data with colors for each wedges as white, red, black, magenta,
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   158
yellow, blue, green, cyan, yellow, magenta and blue respectively.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   159
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   160
.. **Clue** - *try pie? in your ipython interpreter* 
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   161
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   162
Pause here and solve the question before moving on.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   163
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   164
.. pie(t,labels=s,colors=('w','r','k','m','y','b','g','c','y','m','b'))
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   165
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   166
{{{ switch to the slide which says about bar chart }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   167
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   168
Now let us move on to the bar charts. A bar chart or bar graph is a chart
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   169
with rectangular bars with lengths proportional to the values that
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   170
they represent.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   171
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   172
{{{ switch to the slide showing the problem statement of fifth
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   173
exercise question }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   174
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   175
Plot a bar chart representing the profit percentage of company A, with
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   176
the same data from file ``company-a-data.txt``. 
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   177
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   178
So let us reuse the data we have loaded from the file previously.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   179
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   180
{{{ switch to the next slide, ``bar()`` function }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   181
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   182
We can plot the bar chart using the function ``bar()``.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   183
::
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   184
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   185
   bar(year,profit)
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   186
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   187
Note that the function ``bar()`` needs at least two arguments one the
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   188
values in x-coordinate and the other values in y-coordinate which is
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   189
used to determine the height of the bars.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   190
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   191
{{{ switch to the next slide which has the problem statement of
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   192
problem to be tried out }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   193
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   194
Now here is a question for you to try, plot a bar chart which is not
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   195
filled and which is hatched with 45\ :sup:`o` slanting lines as shown
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   196
in the image in the slide. The data for the chart may be obtained from
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   197
the file ``company-a-data.txt``.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   198
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   199
.. **Clue** - *try bar? in your ipython interpreter* 
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   200
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   201
.. bar(year,profit,fill=False,hatch='/')
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   202
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   203
{{{ switch to the slide which says about log-log graph }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   204
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   205
Now let us move on to the log-log plot. A log-log graph or a log-log plot is
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   206
a two-dimensional graph of numerical data that uses logarithmic scales
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   207
on both the horizontal and vertical axes. Because of the nonlinear
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   208
scaling of the axes, a function of the form y = ax\ :sup:`b` will
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   209
appear as a straight line on a log-log graph
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   210
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   211
{{{ switch to the slide showing the problem statement of fourth
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   212
exercise question }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   213
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   214
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   215
Plot a `log-log` chart of y=5*x\ :sup:`3` for x from 1-20.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   216
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   217
Before we actually plot let us calculate the points needed for
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   218
that. 
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   219
::
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   220
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   221
    x = linspace(1,20,100)
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   222
    y = 5*x**3
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   223
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   224
{{{ switch to next slide, ``loglog()`` function }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   225
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   226
Now we can plot the log-log chart using ``loglog()`` function,
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   227
::
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   228
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   229
    loglog(x,y)
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   230
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   231
To understand the difference between a normal ``plot`` and a ``log-log
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   232
plot`` let us create another plot using the function ``plot``.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   233
::
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   234
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   235
    figure(2)
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   236
    plot(x,y)
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   237
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   238
{{{ show both the plots side by side }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   239
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   240
So that was ``log-log() plot``.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   241
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   242
{{{ switch to the next slide which says: "How to get help on
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   243
matplotlib online"}}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   244
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   245
Now we will see few more plots and also see how to access help of
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   246
matplotlib over the internet.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   247
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   248
Help about matplotlib can be obtained from
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   249
matplotlib.sourceforge.net/contents.html
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   250
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   251
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   252
More plots can be seen at
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   253
matplotlib.sourceforge.net/users/screenshots.html and also at
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   254
matplotlib.sourceforge.net/gallery.html
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   255
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   256
{{{ switch to summary slide }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   257
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   258
Now we have come to the end of this tutorial. We have covered scatter
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   259
plot, pie chart, bar chart, log-log plot and also saw few other plots
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   260
and covered how to access the matplotlib online help.
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   261
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   262
{{{ switch to the thank you slide }}}
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   263
54bdda4aefa5 Renamed some LOs and other minor corrections.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff changeset
   264
Thank you!