data visualization principles: color...“categorical” data d3.scaleordinal(d3.schemecategory10)...

50
Data Visualization Principles: Color CSC444 Acknowledgments for today’s lecture: Tamara Munzner, Miriah Meyer, Maureen Stone

Upload: others

Post on 27-May-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Data VisualizationPrinciples: Color

CSC444

Acknowledgments for today’s lecture: Tamara Munzner, Miriah Meyer, Maureen Stone

Page 2: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

ANNOUNCEMENTS

https://cscheid.net/projects/d3-drills/

Assignment 3 solution Assignment 4 due tonight

Assignment 5 posted

Page 3: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

RECAP

Page 4: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

COLOR SPACES

Page 5: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

DEVICE DEPENDENT

Page 6: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

RGB• Device-centric

• What programs want, not what humans want

Page 7: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

HSV• Still device-centric

Page 8: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

HSL• Still device-centric

• (supported in d3)

Page 9: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

DEVICE INDEPENDENT

Page 10: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

• “Optically linear”

• CIE designed three reference spectra: X, Y, Z

• Designed so that all visible colors have positive coordinates, and Y is “luminance”

XYZ Color Space

Page 11: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Lab Color Space

• “Perceptually uniform”

• Euclidean distance corresponds, roughly, to perceptual distance (very useful!)

Page 12: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Polar Lab (or HCL)• “Perceptually uniform”, like Lab

• Transform ab to polar coordinates: radius is Chroma, Angle is Hue

• Conversion to/from RGB is complicated, but distances in HCL make sense, and it makes sense for humans

• Like HSV, but good. All else being equal, think HCL first

Page 13: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Demos

http://cscheid.net/static/20120216/xyz_frame.htmlhttp://cscheid.net/static/20120216/luv_frame.htmlhttp://cscheid.net/static/20120216/hcl_frame.html

http://cscheid.net/static/20120216/hsv_frame.html

Page 14: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Let’s use consistent names in class

Hue

Saturation

Luminance

Page 15: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

CONSEQUENCES FOR DESIGN

Page 16: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

–Maureen Stone

“Get it right in black and white”

Page 17: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

If you’re going to show shape variation, do it with luminance

Page 18: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

If you’re going to show shape variation, do it with luminance

Page 19: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

If you’re going to show shape variation, do it with luminance

Page 20: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

(You can see stars better by looking away from them!)

Page 21: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable
Page 22: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Do not rely only on hue boundaries to depict shape

Page 23: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Do not rely only on hue boundaries to depict shape

Page 24: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable
Page 25: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable
Page 26: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Ware, Chapter 4

Page 27: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Area affects saturation perception

Saturation affects area perception

Page 28: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable
Page 29: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Saturation affects area perception

Page 30: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Area affects saturation perception

Saturation affects area perception

Imagine the mess if you try to use both…

Page 31: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable
Page 32: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable
Page 33: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable
Page 34: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable
Page 35: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Simultaneous contrast is a problem

Quantize the plot if background is non-constant(This comes at a fidelity cost for the data)

Page 36: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

“Categorical” data

d3.scaleOrdinal(d3.schemeCategory10)

• Sometimes there’s no implied relationship between different levels of a variable

• Stimuli must look different, but “only different”

Page 37: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Order these colors!

Page 38: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Order these colors!You can’t…

Page 39: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Order these colors!

Page 40: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Order these colors!You can’t help but…

Page 41: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Order these colors!You can’t help but…

Page 42: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Be aware of implied and perceptually forced color

relationships

For categorical data, use color only when you have few categories (less than 10)

Page 43: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable
Page 44: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

The Dreaded Rainbow Colormap

Page 45: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

If you need going to use the rainbow colormap, use an isoluminant version, quantize it, or both

Bad

Better

Page 46: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Infovis 2011

Page 47: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Borkin et al., Infovis 2011

Page 48: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

Borkin et al., Infovis 2011

Colormap design matters very strongly

Page 49: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

COLORBREWER

Page 50: Data Visualization Principles: Color...“Categorical” data d3.scaleOrdinal(d3.schemeCategory10) • Sometimes there’s no implied relationship between different levels of a variable

COLORGORICAL