3.1 vis_04 data visualization lecture 3 visualization techniques - 1d scalar data 2d scalar data...

27
3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

Upload: anthony-mcgarry

Post on 28-Mar-2015

250 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.1Vis_04

Data VisualizationData Visualization

Lecture 3Visualization Techniques -

1D Scalar Data2D Scalar Data (part 1)

Page 2: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.2Vis_04

Visualization Techniques -One Dimensional Scalar Data

Visualization Techniques -One Dimensional Scalar Data

Page 3: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.3Vis_04

1D Interpolation -The Problem

1D Interpolation -The Problem

f

x1 2 3 40

1

2

3

4

Given (x1,f1), (x2,f2), (x3,f3), (x4,f4) - estimate the value off at other values of x - say, x*. Suppose x*=1.75

1.75

Page 4: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.4Vis_04

Nearest NeighbourNearest Neighbour

f

x1 2 3 40

1

2

3

4

Take f-value at x* as f-value of nearest data sample.So if x* = 1.75, then f estimated as 3

1.75

Page 5: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.5Vis_04

Linear InterpolationLinear Interpolation

f

x1 2 3 40

1

2

3

4

Join data points with straight lines- read off f-value corresponding to x*.. in the case thatx*=1.75, then f estimated as 2.5

1.75

2.5

Page 6: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.6Vis_04

Linear Interpolation - Doing the CalculationLinear Interpolation - Doing the Calculation

f(x*) = (1-t) f1 + t f2

The functions j(t)=1-t and k(t)=t are basis functions.

OR, saving a multiplication:f(x*) = f1 + t ( f2 - f1 )

Suppose x* lies between x1 and x2. Then apply thetransformation:

t = (x*-x1)/(x2-x1)so that t goes from 0 to 1.

t=(1.75-1)/(2-1)=0.75

f(1.75)=0.25*1+0.75*3 =2.5

f(1.75)=1+0.75*(3-1) =2.5

Page 7: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.7Vis_04

Nearest Neighbour and Linear Interpolation

Nearest Neighbour and Linear Interpolation

Nearest Neighbour– Very fast : no arithmetic involved– Continuity : discontinuous value– Bounds : bounds fixed at data extremes

Linear Interpolation– Fast : one multiply, one divide– Continuity : value only continuous, not

slope (C0)– Bounds : bounds fixed at data extremes

Page 8: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.8Vis_04

Drawing a Smooth CurveDrawing a Smooth Curve

Rather than straight line between points, we create a curve piece

x1 x2

f1

f2

g1

g2

We estimate theslopes g1 and g2

at the data points,and construct curvewhich has these valuesand these slopes at end-points

Page 9: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.9Vis_04

Slope EstimationSlope Estimation

Slopes estimated as some average of the slopes of adjacent chords - eg to estimate slope at x2

x1 x2 x3

g2

f2

f1

f3

g2 usuallyarithmetic mean(ie average) of

f2-f1)/(x2-x1)

Page 10: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.10Vis_04

Piecewise Cubic Interpolation

Piecewise Cubic Interpolation

x1 x2

f1

f2

g1

g2

f(x) = c1(x) * f1

+ c2(x) * f2

+ h*(d1(x) * g1

- d2(x) * g2)

ci(x), di(x) arecubic Hermitebasis functions,h = x2 – x1.

Once the slopes at x1 and x2 are known, thisis sufficient to define a unique cubic polynomialin the interval [x1,x2]

Page 11: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.11Vis_04

Cubic Hermite Basis Functions

Cubic Hermite Basis Functions

Here they are:

Again set t = (x - x1)/(x2 – x1)

c1 (t) = 3(1-t)2 - 2(1-t)3

c2 (t) = 3t2 - 2t3

d1 (t) = (1-t)2 - (1-t)3

d2 (t) = t2 - t3Check the valuesat x = x1, x2 (ie t=0,1)

Page 12: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.12Vis_04

Coal data - cubic interpolation

Coal data - cubic interpolation

Page 13: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.13Vis_04

Piecewise Cubic Interpolation

Piecewise Cubic Interpolation

More computation needed than with nearest neighbour or linear interpolation.

Continuity: slope continuity (C1) by construction - and cubic splines will give second derivative continuity (C2)

Bounds: bounds not controlled generally - eg if arithmetic mean used in slope estimation...

Page 14: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.14Vis_04

Shape ControlShape Control

However special choices for slope estimation do give control over shape

If the harmonic mean is used1/g2 = 0.5 ( 1/1 + 1/2)

then we find that f(x) lies within the bounds of the data

Page 15: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.15Vis_04

Coal data – keeping within the bounds of the data

Coal data – keeping within the bounds of the data

Page 16: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.16Vis_04

Rendering Line GraphsRendering Line Graphs

The final rendering step is straightforward

We can assume that the underlying graphics system will be able to draw straight line segments

Thus the linear interpolation case is trivial

For curves, we do an approximation as sequence of small line segments

Page 17: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.17Vis_04

Background StudyBackground Study

Take the coal furnace data from lecture 2

– Investigate how to present this as a graph in Excel (not easy!)

– After learning gnuplot in the practical class, create a graph of the coal data using gnuplot

Look for Java applets on the Web that will create line graphs

Page 18: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.18Vis_04

Visualization TechniquesTwo Dimensional Scalar Data

Visualization TechniquesTwo Dimensional Scalar Data

Page 19: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.19Vis_04

2D Interpolation - Rectangular Grid

2D Interpolation - Rectangular Grid

Suppose we are given data on rectangular grid:

f given at eachgrid point;data enrichmentfills out the emptyspaces byinterpolating valueswithin each cell

Page 20: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.20Vis_04

Nearest Neighbour Interpolation

Nearest Neighbour Interpolation

Straightforward extension from 1D: take f-value from nearest data sample

No continuity Bounds fixed at data extremes

Page 21: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.21Vis_04

Bilinear InterpolationBilinear Interpolation

Consider one grid rectangle:– suppose corners are at (0,0), (1,0),

(1,1), (0,1) ... ie a unit square

– values at corners are f00, f10, f11, f01

f00 f10

f01 f11

How do weestimate valueat a point (x,y)inside thesquare?

Page 22: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.22Vis_04

Bilinear InterpolationBilinear Interpolation

f00 f10

f01 f11

(i) interpolate in x-direction between f00,f10; and f01,f11

(ii) interpolate in y-direction

We carry out three 1D interpolations:

Exercise: Show this is equivalent to calculating -f(x,y) = (1-x)(1-y)f00+x(1-y)f10+(1-x)yf01+ xyf11

(x,y)

Page 23: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.23Vis_04

Piecewise Bilinear Interpolation

Piecewise Bilinear Interpolation

Apply within each grid rectangle Fast Continuity of value, not slope

(C0) Bounds fixed at data extremes

Page 24: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.24Vis_04

Contour DrawingContour Drawing

Contouring is very common technique for 2D scalar data

Isolines join points of equal value

– sometimes with shading added

How can we quickly and accurately draw these isolines?

Page 25: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.25Vis_04

An ExampleAn Example

As an example, consider this data:

10 -5

1 -2

Where does the zero level contour go?

Page 26: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.26Vis_04

Intersections with sidesIntersections with sides

The bilinear interpolant is linear along any edge - thus we can predict where the contour will cut the edges (just by simple proportions)

10 -5

-21

10

-5

cross-section viewalong top edge

Page 27: 3.1 Vis_04 Data Visualization Lecture 3 Visualization Techniques - 1D Scalar Data 2D Scalar Data (part 1)

3.27Vis_04

Simple ApproachSimple Approach

A simple approach to get the contour inside the grid rectangle is just to join up the intersection points

10 -5

-21

Question:Does this always work?

Try an example whereone pair of oppositecorners are positive,other pair negative