Python-3.4.3/C2/Embellishing-a-plot/English

From Script | Spoken-Tutorial
Revision as of 13:00, 13 February 2017 by Vineeta (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Python/C2/Embellishing a Plot/English


Title of script: Embellishing a Plot

Author: Chandrika, Pravin, Aditya Palaparthy

Keywords: Python, IPython, plot, title


Visual Cue
Narration
Title Slide Hello Friends. Welcome to the tutorial on "Embellishing a Plot".
Show Slide

Objectives


At the end of this tutorial, we will learn to-


  1. Modify the attributes of the plot -- color, line style, linewidth.
  2. Add a title to the plot with embedded LaTeX.
  3. Label x and y axes.
  4. Add annotations to the plot.
  5. Set and get the limits of axes.


Show Slide

System Requirements

To record this tutorial, I am using
  • Ubuntu Linux 14.04 operating system
  • Python 3.4.3
  • IPython 5.1.0


Show slide

Pre-requisites

To practice this tutorial, you should know how to
  • run basic Python commands on the ipython console
  • and use the Plots interactively.

If not, see the pre-requisite Python tutorials on this website.

[Terminal]

ipython3 and press Enter.

Let us start ipython3.


Open the terminal.


Type ipython3 and press Enter.

[IPython console]

%pylab and press Enter.

Let us initialise the pylab package


Type %pylab and press Enter

[IPython console]

x = linspace(-2, 4, 20) and press Enter.

We shall first make a simple plot and start modifying it.


Type x = linspace inside the brackets (-2, 4, 20) and press Enter.

plot(x, sin(x)) and press Enter. Then type ploti nside the brackets (x, sin(x)) and press Enter.
[Plot Window] We can now see the sine curve in the plot window.


The default colour and thickness of the line is as decided by pylab.

Let us now change the parameters of this curve.


We can pass additional arguments to the plot command to do this.

[IPython console]

clf() and press Enter.

We shall first clear the plot window by typing clf() in the ipython console.
[Plot window] You can now see a blank plot window.
[IPython console]

plot(x, sin(x), 'r') and press Enter.

Now plot the same sine curve with an additional color argument.


So we will type plot inside the brackets (x, sin(x), 'r') and press Enter.

Here, the argument 'r' is for red color.

Show the sine curve on the plot window by moving the mouse pointer on it.


On the plot window, the same sine curve is now seen in red color.


Do not close the plot window just minimize it.

[Ipython console] We can alter the thickness of the line by using the 'linewidth' argument.
[IPython console]


plot(x,cos(x),linewidth=2) and press Enter.

This time we will draw the cosine curve on the plot window.


So, type plot inside the brackets (x,cos(x),linewidth=2) and press Enter.

[Plot window]

compare the sine and cosine plots

A cosine curve with line thickness 2 is produced in the plot window.
Let us now try to plot a sine curve in blue color with linewidth as 3.
[IPython console] Here onwards, press the Enter the key to execute every command that we type on the Ipython console.
[IPython console]

clf()

First let us clear the plot window by typing clf().

You will again see a blank plot window

[IPython console]

plot(x, sin(x), 'b', linewidth=3)

Now type inside the brackets plot(x, sin(x), 'b', linewidth=3)


A combination of color and linewidth would do the job for us.

[Ipython console] To get the plot in dotted style instead of a solid style, put a dot in linestyle.
[IPython console]

clf()

First, type clf() to clear the plot window.
[IPython console]

plot(x, sin(x), '.')


Now type plot inside the brackets (x, sin(x), '.')
[Plot Window] We get the sine curve in dotted style.
[IPython console]

plot?

Run through the information and show the options available

Show the options available for line style and colors

Let's see the information of plot.


Type plot question mark and press Enter

Show Slide

Exercise 1


Pause the video. Try this exercise and then resume the video


Plot the curve of x v/s cos(x) in red dash line and linewidth 3.

Let us switch to the console for the solution.
[IPython console]

clf()

Type clf() to clear the plot window.
[IPython console]

plot(x, cos(x), 'r--',linewidth=3)


Now type plot(x, cos(x), 'r--',linewidth=3)


We use a combination of linewidth argument and linestyle.

Now we know how to produce a bare minimum plot with color, style and thickness.


Let us look at modifying the plot further.

[IPython console]

plot(x, -x*x + 4*x - 5, 'r', linewidth=2)

Let us start with a plot for the function -x^2 + 4x - 5.


Now type plot(x, -x*x + 4*x - 5, 'r', linewidth=2)

[Plot window] We will see the curve of this equation in the plot window.


But the figure does not have any description describing the plot.

[IPython console]

title("Parabolic function -x^2+4x-5")

To add a title to the plot, use the title command.


So type title("Parabolic function -x^2+4x-5")

[IPython console]

Highlight the title command

The title command as you can see, takes a string as an argument.
Show the plot window and point to the title We can see the title on the plot window.


But it is not formatted and does not look clean.

Show the plot window and point to the title It would look even more shabby if there were fractions and complex functions.


Let us write the title in LaTeX format for a neater look.

[IPython console]

title(r"Parabolic function $-x^2+4x-5$")

For LaTeX format, we put a $ before and after the string.


Type title(r"Parabolic function $-x^2+4x-5$")


Here ' r ' means that the string is to be treated as a raw string.

It will ignore all escape codes.

[Plot Window]

Point at the polynomial

As we can see that the polynomial in the title is now formatted.
[IPython console]

xlabel(r"$x$")

ylabel(r"$f(x)$")

Although we have title, the plot is not complete without labelling the x and y axes.

So we will label x and y axes in Latex style.


Type xlabel(r"$x$") and ylabel(r"$f(x)$")

[IPython console]


annotate("local maxima", xy=(2, -1))


The plot is now almost complete.


Now we will name the points considering point(2,-1) as local maxima.


To name a point we use the function annotate.


Type annotate("local maxima", xy=(2, -1))

[Plot Window]


Show the annotation that has appeared on the plot

We can see the local maxima at point (2, -1)
[IPython console]


Point at the annotate command while explaining

The first argument in annotate command is the name of the point.


The second argument represents the coordinates of the point.


It is a tuple containing two numbers. The first is x coordinate and second is y coordinate.

Show Slide

Exercise 2


Pause the video. Try this exercise and then resume the video.


Make an annotation called "root" at the point (-4, 0).

What happens to the first annotation?

[IPython console]


annotate("root", xy=(-4,0))


Switch to the Ipython console for the solution.


Type annotate("root", xy=(-4,0))


Every annotate command makes a new annotation on the figure.

[IPython console]

xlim()

ylim()

Next, type xlim()

xlim function returns the current x axis limits.


Then type ylim()

ylim function returns the current y-axis limits.

[IPython console]


xlim(-4, 5)

ylim(-15, 2)

Set the limits of x-axis from -4 to 5 by typing xlim(-4, 5)


Similarly, set the limits of y-axis in a similar manner.


Type ylim(-15, 2)

Show Slide

Summary slide


This brings us to the end of this tutorial. In this tutorial, we have learnt to,


  1. Modify the attributes of a plot like color, line width, line style by passing additional arguments.
  2. Add title to a plot using 'title' command.
  3. Incorporate LaTeX style formatting by adding a $ sign before and after the string.
  4. Label x and y axes using xlabel() and ylabel() commands.
  5. Add annotations to a plot using annotate() command.
  6. Get and set the limits of axes using xlim() and ylim() commands.


Show Slide

Evaluation


Here are some self assessment questions for you to solve.
  1. Draw a plot of cosine graph between -2pi to 2pi with line thickness 4.
  2. Read the documentation and find out, is there a way to modify the alignment of text in the command ylabel.
    • Yes
    • No


Show Slide

Solutions


And the answers,

1. In order to plot a cosine graph between the points -2pi and 2pi with line thickness 3,we use the linspace and plot command as,

x = linspace(-2*pi, 2*pi)

plot(x, cos(x), linewidth=4)

2. No. We do not have an option to modify the alignment of text in the command ylabel.

Show Slide

About the Spoken Tutorial Project


The video in the following link summarises the Spoken Tutorial project.


If you do not have good bandwidth, you may download and watch it.

Show Slide

Spoken tutorial workshops

We conduct workshops using Spoken Tutorials and give Certificates.


Please contact us.

Show Slide

Forum to answer questions

Do you have questions on THIS Spoken Tutorial?

Choose the minute and second where you have the question.

Explain your question briefly.

Someone from the FOSSEE team will answer them.

Please visit this site.

Show Slide

Forum to answer questions

Do you have any general / technical questions on Python?


Please visit the FOSSEE forum and post your question.

Show Slide

Textbook Companion

The FOSSEE team coordinates coding of solved examples of popular books.

We give honorarium and certificates for those who do this.

For more details, please visit this site.

Show Slide

Acknowledgement

The Spoken Tutorial project is funded by NMEICT, MHRD, Govt. of India
Show Slide

Thank You

This is (________) from IIT Bombay signing off. Thanks for watching

Contributors and Content Editors

Nancyvarkey, Nirmala Venkat, Vineeta