@media 11: Visualising Data

110
London, England 51°30N 0°6E Visualising Data Brian Suda suda.co.uk May 26th http://www.flickr.com/photos/fepigio/461422792/

description

The Large Hadron Collider (LHC) is estimated to produce 15 petabytes of data per year. This is difficult to store let alone understand!With connected devices quickly out numbering connected people, we are soon going to be swamped with data. Visualising the constant stream of information we are collecting so that it can be better understood is going to be a critical task.In this presentation, I’ll walk you through a quick overview of some basic chart and graph design, then look at how easy it is to write some quick scripts in your favourite language to produce beautiful graphics. SVG is an under-​​rated technology, but it can be created programmatically and quickly to visualise data.

Transcript of @media 11: Visualising Data

Page 1: @media 11: Visualising Data

London, England51°30′N0°6′E

Visualising DataBrian Sudasuda.co.ukMay 26th

http://www.flickr.com/photos/fepigio/461422792/

Page 2: @media 11: Visualising Data
Page 3: @media 11: Visualising Data

Today's focus

Page 4: @media 11: Visualising Data
Page 5: @media 11: Visualising Data
Page 6: @media 11: Visualising Data
Page 7: @media 11: Visualising Data
Page 8: @media 11: Visualising Data

Each Chart and Graph type tells a

different story

Page 9: @media 11: Visualising Data

Bar Charts

100

300

200

1 2 3 4 5 6 7 8 9 10 11 12

400

Page 10: @media 11: Visualising Data

Area Charts

100

300

200

1 2 3 4 5 6 7 8 9 10 11 12

400

500

700

600

800

Page 11: @media 11: Visualising Data

Line Charts

200,000

400,000

600,000

800,000

1,000,000

June July Aug Sept Oct Nov Dec Jan Feb

Page 12: @media 11: Visualising Data

Horizon Graphs

100

300

200

1 2 3 4 5 6 7 8 9 10 11 12

400

-400

-200

-300

-100

13 14 15 16 17 18 19 20

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Page 13: @media 11: Visualising Data

Attributes to signal changeHow do we highlight just aspects of the design?

Page 14: @media 11: Visualising Data

Attributes to signal change

ColorSun Mon Tue Wed Thu Fri Sat

In vitae facilisis nisl. Pellentesque facilisis rutrum sem non viverra. Curabitur tortor ipsum, sodales et viverra nec, malesuada sed felis. Nulla ornare velit diam, sit amet imperdiet ligula. Pellentesque vel dictum nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec suscipit venenatis feugiat.

Page 15: @media 11: Visualising Data

Attributes to signal change

Saturation

Sun Mon Tue Wed Thu Fri Sat

In vitae facilisis nisl. Pellentesque facilisis rutrum sem non viverra. Curabitur tortor ipsum, sodales et viverra nec, malesuada sed felis. Nulla ornare velit diam, sit amet imperdiet ligula. Pellentesque vel dictum nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec suscipit venenatis feugiat.

Page 16: @media 11: Visualising Data

Attributes to signal change

Position2009 Q1 Q2 Q3 Q4

BlueberriesBlue berries

Page 17: @media 11: Visualising Data

Attributes to signal change

Weight

0

50

25

Feb Mar Apr MayJan Jun

In vitae facilisis nisl. Pellentesque facilisis rutrum sem non viverra. Curabitur tortor ipsum, sodales et viverra nec, malesuada sed felis. Nulla ornare velit diam, sit amet imperdiet ligula. Pellentesque vel dictum nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec suscipit venenatis feugiat.

Page 18: @media 11: Visualising Data

Attributes to signal change

AnimationRotationOthers...

Page 19: @media 11: Visualising Data

3D

Page 20: @media 11: Visualising Data

3D

Hippo #1

2 Units

Hippo #2

4 Units

Page 21: @media 11: Visualising Data

3D

Hippo #1

2 Units

Hippo #2

4 Units

Page 22: @media 11: Visualising Data

3D

Hippo #1

2 Units

Hippo #2

4 Units

Hippo #1

2 Units

Hippo #2

4 Units

Page 23: @media 11: Visualising Data

3D

Hippo #1

2 Units

Hippo #2

4 Units

Page 24: @media 11: Visualising Data

3D Charts!

Vanishing Point

Page 25: @media 11: Visualising Data

3D Charts!Vanishing Point

Page 26: @media 11: Visualising Data

3D Charts!

Vanishing Point

Page 27: @media 11: Visualising Data

3D Charts!

Page 29: @media 11: Visualising Data
Page 30: @media 11: Visualising Data
Page 31: @media 11: Visualising Data
Page 32: @media 11: Visualising Data

Data to Ink RatioA large share of ink on a graphic should present data-information, the ink changing as the data change. Data-ink is the non-erasable core of a graphic, the non-redundant ink arranged in response to variation in the numbers represented.

Tufte, 1983

Page 33: @media 11: Visualising Data

Data to Ink Ratio

Data to ink Ratio

Data InkTotal Ink

=

Page 34: @media 11: Visualising Data

Reduce!!!

Page 35: @media 11: Visualising Data

Reduce!!!100

0

75

50

25

Q1 Q2 Q3 Q4

Page 36: @media 11: Visualising Data

Reduce!!!

0

58

32

Q1 Q2 Q3 Q4

Page 37: @media 11: Visualising Data

Reduce!!!

0

58

32

Q1 Q2 Q3 Q4

Page 38: @media 11: Visualising Data

Reduce!!!

0

58

32

Q1 Q2 Q3 Q4

Page 39: @media 11: Visualising Data

Reduce!!!

0

58

32

Q1 Q2 Q3 Q4

Page 40: @media 11: Visualising Data

Reduce!!!

60%

40%

20%

80%

60%

40%

20%

80%

Page 41: @media 11: Visualising Data

Smallest Effective Difference

Page 42: @media 11: Visualising Data

Two Camps

Page 44: @media 11: Visualising Data
Page 45: @media 11: Visualising Data

GetColor()

Page 46: @media 11: Visualising Data

$hex = substr(md5(“13:00”),0,6);#36b0cf

Page 47: @media 11: Visualising Data

May = #195fbb12:00 = #18940d

London = #59ead8AtMedia11 = #d7dcc4

England = #64f607

Page 48: @media 11: Visualising Data

Needs a friend

Page 49: @media 11: Visualising Data
Page 50: @media 11: Visualising Data

May = #195fbb

12:00 = #18940d

London = #59ead8

AtMedia11 = #d7dcc4

England = #64f607

Page 51: @media 11: Visualising Data

Accessibility

Page 52: @media 11: Visualising Data
Page 53: @media 11: Visualising Data
Page 54: @media 11: Visualising Data
Page 55: @media 11: Visualising Data
Page 56: @media 11: Visualising Data

Types of color blindness

Page 57: @media 11: Visualising Data
Page 58: @media 11: Visualising Data

Deuteranopia

Page 59: @media 11: Visualising Data

Protanopia

Page 60: @media 11: Visualising Data

Tritanopia

Page 61: @media 11: Visualising Data
Page 62: @media 11: Visualising Data
Page 63: @media 11: Visualising Data
Page 64: @media 11: Visualising Data

Telling a story

Page 65: @media 11: Visualising Data

7 Stages of a mythic journey

Page 66: @media 11: Visualising Data

http://en.wikipedia.org/wiki/Monomyth

ReturnCall  to

Adventure Supernaturalaid

KNOWNUNKNOWN

ThresholdGuardian(s)

Threshold(beginning  oftransformation)

Helper

Mentor

Helper

Atonement

Transformation

(Gift  ofthe  Godess)

Abyssdeath  &  rebirth

TheHero'sJourney

Page 67: @media 11: Visualising Data

The Image

Page 68: @media 11: Visualising Data

The Embarkation

Page 69: @media 11: Visualising Data

The Labyrinth

Page 70: @media 11: Visualising Data

The Draw

Page 71: @media 11: Visualising Data

The Payoff

Page 72: @media 11: Visualising Data

The Return

Page 73: @media 11: Visualising Data

The Memento

Page 74: @media 11: Visualising Data
Page 75: @media 11: Visualising Data

What does this have to do with visualizations?

Page 76: @media 11: Visualising Data
Page 77: @media 11: Visualising Data
Page 78: @media 11: Visualising Data
Page 79: @media 11: Visualising Data

Red shirt theory

Page 80: @media 11: Visualising Data
Page 81: @media 11: Visualising Data
Page 82: @media 11: Visualising Data
Page 83: @media 11: Visualising Data

DeterministicDesign

Page 84: @media 11: Visualising Data
Page 85: @media 11: Visualising Data
Page 86: @media 11: Visualising Data
Page 87: @media 11: Visualising Data
Page 88: @media 11: Visualising Data

echo '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg" version="1.1">';

$arm_pos = 0;foreach($dirs as $k=>$v){ $length = (($v/$counter)*$scaler); $x = 100+(sin(deg2rad($k)) * $length); $y = 100+(cos(deg2rad($k)) * $length);

$arm_pos = $k+10; if($arm_pos > 360) { $arm_pos = 10; }

$length = (($dirs[$arm_pos]/$counter)*$scaler);

$x1 = 100+(sin(deg2rad($arm_pos)) * $length); $y1 = 100+(cos(deg2rad($arm_pos)) * $length);

echo '<polygon points="100,100 '.$x.','.$y.' '.$x1.','.$y1.'" fill="#'.stepper($k).'"/>';}echo '</svg>';

Page 89: @media 11: Visualising Data

X

YAve

rage Speed

Angle

X = sin(Angle) * Average Speed;Y = cos(Angle) * Average Speed;

Page 90: @media 11: Visualising Data

http://visitnordkyn.com

Page 91: @media 11: Visualising Data
Page 94: @media 11: Visualising Data
Page 95: @media 11: Visualising Data
Page 96: @media 11: Visualising Data
Page 98: @media 11: Visualising Data

echo '<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"xmlns="http://www.w3.org/2000/svg">';

$c = (int)(($x*$y)/$scaler);$prev = 0;foreach($rgb as $k=>$v){ if($v > 0) { $r = ($k >> 16) & 0xFF; $g = ($k >> 8) & 0xFF; $b = $k & 0xFF;

$hex = str_pad(dechex($r),2,'0',STR_PAD_LEFT).str_pad(dechex($g),2,'0',STR_PAD_LEFT).str_pad(dechex($b),2,'0',STR_PAD_LEFT); echo '<circle cx="'.$c.'" cy="'.$c.'" r="'.($c-$prev).'" fill="#'.$hex.'" />'; echo "\n"; $prev += (int)($v/$scaler);

}}

echo '</svg>';

Page 99: @media 11: Visualising Data
Page 100: @media 11: Visualising Data
Page 101: @media 11: Visualising Data
Page 102: @media 11: Visualising Data
Page 103: @media 11: Visualising Data
Page 104: @media 11: Visualising Data
Page 105: @media 11: Visualising Data
Page 106: @media 11: Visualising Data

http://mozillalabs.com/testpilot/

Page 107: @media 11: Visualising Data
Page 108: @media 11: Visualising Data
Page 109: @media 11: Visualising Data

Tell one story and only one story!

Page 110: @media 11: Visualising Data

Thanks

@briansudahttp://suda.co.ukhttp://optional.ishttp://designingwithdata.com