This is an old revision of the document!


Lab 06 - Advanced plotting

You’ve got the basics, now let’s unleash the power!

Objectives

  • Conditional plotting
  • Time-based data when plotting in gnuplot
  • Advanced plotting concepts: Histograms, animations, heatmaps, three-dimensional plots
  • Insertion of graphics in the .tex file

Contents

Introduction

A quick plot is enough when you are exploring a data set or a function. But when you present your results to others you need to prepare the plots much more carefully so that they give the information to someone who does not know all the background you do.

Using PostScript plots with LaTeX

  1. Make sure all the individual image files are properly trimmed EPS files.
  2. Create a LaTeX document.
  3. Process this document using LaTeX.
  4. Use the dvips utility with the -E flag to turn the resulting DVI file into Encapsulated PostScript.

Summary from the previous laboratory

scatter plot:
plot ’data.txt’ using 1:2
plot ’data.txt’ using 1:2 with points

example for the short format:
p ’data.txt’ u 1:2 w p pt 1 lt 2 lw 2
notitle

line plot:
plot ’data.txt’ using 1:2 with lines

multiple data series:
use replot or separate by commas
plot ’data.txt’ using 1:2, ’data.csv’ using 1:3

set key:
plot ’data.txt’ using 1:2 title "key"

Tutorial

Exercises

Exercise 01. [10p] Tutorials
  • Go through tutorials.
Exercise 02. [10p] Conditional plotting

Using Gnuplot, generate two separate bar graphs for the following:

  • calories_consumed/km-ran.
  • sugar_consumed/km-ran.
  • ratio = too high? colour the ticks in red : colour the ticks in green.

The ratio is considered to be high enough when $6/$4 > 1. This will help you spot the people who live less healthy. The graphs should be as complete as possible (title, axes names, etc.).

Exercise 03. [10p] Stats

Datafile: health.txt

Use Gnuplot to generate the following graphs:

  • Using the 'stats' command, find out the mean and standard deviation value for the “Temperature” and “Heart Rate” columns.
  • Create a rectangle that contains all the data points considered to be in the average normal values (assume that the “normal” values should be in the interval [mean-stddev, mean+stddev]).
  • Create a multiplot containing 3 plots using the “Temperature” and “Heart Rate” columns: one for all genders, one for males and one for females.
  • The graphs should be as complete as possible (title, axes names, etc.)
Exercise 04. [10p] Time-based data when plotting in gnuplot

Datafile: time_data.txt

Using the code provided in “Tutorial 02. Time-based data when plotting in gnuplot”, use the histogram style, and format the xtic labels using strftime and timecolumn.

set timefmt "%H:%S"
set style fill solid 0.6 border -1
set style data histogram
set style histogram clustered gap 1 plot 'data.dat' using 2:xtic(strftime('%H', timecolumn(1))), \ '' using ($2*0.5), \ '' using ($2*0.7)
Exercise 05. [10p] Plot histograms

Datafile: histograms.txt

[5p] Task A - Multiple histograms

Using Gnuplot, create multiple histograms with 'set style histogram' and 'boxes'.

[5p] Task B - Bar graphs

Create a simple bar graph. Remember to make the lines solid.

  • Style your bars differently (set a different color for every bar).
  • Do multiple bars for each entry.
  • Use a function to pick the colors you want. Remember to set width and fill.
Exercise 05. [10p] Animations

Datafile: animations.txt

  • Create a script that animates a trajectory. Set a circle in the centre as a green filled circle.
  • Hint: Check the code from “Tutorial 04. Animations” and adjust.
Exercise 06. [20p] Heatmaps

Datafile: heatmaps.txt

[10p] Task A - With image/pm3d/dgrid3d

Using Gnuplot, create heatmaps using:

  • “with image”
  • “pm3d/dgrid3d” and “splot”
[10p] Task B - Interpolation

Create heatmap WITHOUT interpolation;

  • As default, pm3d uses a color map which varies from black to yellow via blue and red. Change the pallete!
  • Double the number of visible points.
  • Question: Have Gnuplot choose the correct number of interpolation points by itself.
Exercise 07. [20p] Latex

Datafile: heat_map_data.txt

[10p] Task A - 2D maps

Use Gnuplot to create three 2D maps in a single 3D graph. Export the result as a .pdf file (using gnuplottex package) and include also a \caption{Describe how you did the exercise}. Hint: You have to give the splot command 4 pieces of information: the x, y, and the z coordinate,and the value for the color.

set view 55,110
splot "heat_map_data.txt" matrix  u 1:2:(-0.5):3 w image, \
      "" matrix u 1:(-0.5):2:3 w image, \
      "" matrix u (-0.5):1:2:3 w image
[5p] Task B - Generate pdf

Create myscript.tex and add the lines below. You should put in your 'begin{gnuplot}…end{gnuplot}' your solution for plotting. The main advantage for using gnuplottex is that you are allowed to use gnuplot directly inside the .tex file.

\documentclass[a4paper]{article}
\usepackage{gnuplottex}
 
\begin{document}
 
\begin{gnuplot}[terminal=pdf,terminaloptions={font ",10" linewidth 3}]
    plot sin(x), cos(x)
\end{gnuplot}
 
\begin{gnuplot}[scale=0.8]
    set grid
    set title 'gnuplottex test $e^x$'
    set ylabel '$y$'
    set xlabel '$x$'
    plot exp(x) with linespoints
\end{gnuplot}
 
\end{document}
[5p] Task C - Compile

Compile it! Your final result should look like this: myscript.pdf.

#compile with
pdflatex --shell-escape myscript.tex

Observations: If gnuplottex is missing, here is gnuplottex.sty

05 - Feedback

ep/labs/061.1569555001.txt.gz · Last modified: 2019/09/27 06:30 by andreea.alistar
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0