Working w ith 2 D arra y s IN TR OD U C TION TO DATA VISU AL - - PowerPoint PPT Presentation

working w ith 2 d arra y s
SMART_READER_LITE
LIVE PREVIEW

Working w ith 2 D arra y s IN TR OD U C TION TO DATA VISU AL - - PowerPoint PPT Presentation

Working w ith 2 D arra y s IN TR OD U C TION TO DATA VISU AL IZATION IN P YTH ON Br y an Van de Ven Core De v eloper of Bokeh Reminder : N u mP y arra y s Homogeneo u s in t y pe Calc u lations all at once Inde x ing w ith brackets : A[index]


slide-1
SLIDE 1

Working with 2D arrays

IN TR OD U C TION TO DATA VISU AL IZATION IN P YTH ON

Bryan Van de Ven

Core Developer of Bokeh

slide-2
SLIDE 2

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Reminder: NumPy arrays

Homogeneous in type Calculations all at once Indexing with brackets:

A[index] for 1D array A[index0, index1] for 2D array

slide-3
SLIDE 3

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Reminder: slicing arrays

Slicing: 1D arrays: A[slice] , 2D arrays: A[slice0, slice1] Slicing: slice = start:stop:stride Indexes from start to stop-1 in steps of stride Missing start : implicitly at beginning of array Missing stop : implicitly at end of array Missing stride : implicitly stride 1 Negative indexes/slices: count from end of array

slide-4
SLIDE 4

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

2D arrays & images

0.434 0.339 0.337 0.367 ... 0.434 0.421 0.404 0.395 ... 0.350 0.388 0.340 0.340 ... 0.328 0.384 0.308 0.308 ... ... ... ... ... ...

slide-5
SLIDE 5

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

2D arrays & functions

slide-6
SLIDE 6

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Using meshgrid()

meshgrids.py :

import numpy as np u = np.linspace(-2, 2, 3) v = np.linspace(-1, 1, 5) X,Y = np.meshgrid(u, v)

X :

[[-2. 0. 2.] [-2. 0. 2.] [-2. 0. 2.] [-2. 0. 2.] [-2. 0. 2.]]

Y :

[[-1. -1. -1. ] [-0.5 -0.5 -0.5] [ 0. 0. 0. ] [ 0.5 0.5 0.5] [ 1. 1. 1. ]]

slide-7
SLIDE 7

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Meshgrid

slide-8
SLIDE 8

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Sampling on a grid

meshgrids.py

import numpy as np import matplotlib.pyplot as plt u = np.linspace(-2, 2, 3) v = np.linspace(-1, 1, 5) X,Y = np.meshgrid(u, v) Z = X**2/25 + Y**2/4 print(Z) plt.set_cmap('gray') plt.pcolor(Z) plt.show()

Z :

[[ 0.41 0.25 0.41 ] [ 0.2225 0.0625 0.2225] [ 0.16 0. 0.16 ] [ 0.2225 0.0625 0.2225] [ 0.41 0.25 0.41 ]]

slide-9
SLIDE 9

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Sampling on a grid

slide-10
SLIDE 10

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Orientations of 2D arrays & images

  • rientation.py

import numpy as np import matplotlib.pyplot as plt Z = np.array([[1, 2, 3], [4, 5, 6]]) print(z) plt.pcolor(Z) plt.show() Z : [[1 2 3] [4 5 6]]

slide-11
SLIDE 11

Let's practice!

IN TR OD U C TION TO DATA VISU AL IZATION IN P YTH ON

slide-12
SLIDE 12

Visualizing bivariate functions

IN TR OD U C TION TO DATA VISU AL IZATION IN P YTH ON

Bryan Van de Ven

Core Developer of Bokeh

slide-13
SLIDE 13

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Bivariate functions

slide-14
SLIDE 14

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Pseudocolor plot

import numpy as np import matplotlib.pyplot as plt u = np.linspace(-2, 2, 65) v = np.linspace(-1, 1, 33) X,Y = np.meshgrid(u, v) Z = X**2/25 + Y**2/4 plt.pcolor(Z) plt.show()

slide-15
SLIDE 15

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Color bar

plt.pcolor(Z) plt.colorbar() plt.show()

slide-16
SLIDE 16

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Color map

plt.pcolor(Z, cmap= 'gray') plt.colorbar() plt.show()

slide-17
SLIDE 17

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Color map

plt.pcolor(Z, cmap= 'autumn') plt.colorbar() plt.show()

slide-18
SLIDE 18

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Axis tight

plt.pcolor(Z) plt.colorbar() plt.axis('tight') plt.show()

slide-19
SLIDE 19

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Plot using mesh grid

# X, Y are 2D meshgrid plt.pcolor(X, Y, Z) plt.colorbar() plt.show()

axes determined by arrays X , Y

slide-20
SLIDE 20

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Contour plots

plt.contour(Z) plt.show()

slide-21
SLIDE 21

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

More contours

plt.contour(Z, 30) plt.show()

slide-22
SLIDE 22

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Contour plot using meshgrid

plt.contour(X, Y, Z, 30) plt.show()

slide-23
SLIDE 23

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Filled contour plots

plt.contourf(X, Y, Z, 30) plt.colorbar() plt.show()

slide-24
SLIDE 24

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

More information

API has many (optional) keyword arguments More in matplotlib.pyplot documentation More examples: hp://matplotlib.org/gallery.html

slide-25
SLIDE 25

Let's practice!

IN TR OD U C TION TO DATA VISU AL IZATION IN P YTH ON

slide-26
SLIDE 26

Visualizing bivariate distributions

IN TR OD U C TION TO DATA VISU AL IZATION IN P YTH ON

Bryan Van de Ven

Core Developer of Bokeh

slide-27
SLIDE 27

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Distributions of 2D points

2D points given as two 1D arrays x and y Goal: generate a 2D histogram from x and y

slide-28
SLIDE 28

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Histograms in 1D

Choose bins (intervals) Count realizations within bins & plot

slide-29
SLIDE 29

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Histograms in 1D

counts, bins, patches = plt.hist(x, bins=25) plt.show()

slide-30
SLIDE 30

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Bins in 2D

Dierent shapes available for binning points Common choices: rectangles & hexagons

slide-31
SLIDE 31

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

hist2d(): Rectangular binning

# x & y are 1D arrays of same length plt.hist2d(x, y, bins=(10, 20)) plt.colorbar() plt.xlabel('weight ($\\mathrm{kg}$)') plt.ylabel('acceleration ($\\mathrm{ms}^{-2}$)}' plt.show()

slide-32
SLIDE 32

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

hexbin(): Hexagonal binning

plt.hexbin(x, y, gridsize=(15,10)) plt.colorbar() plt.xlabel('weight ($\\mathrm{kg}$)') plt.ylabel('acceleration ($\\mathrm{ms}^{-2}$)}' plt.show()

slide-33
SLIDE 33

Let's practice!

IN TR OD U C TION TO DATA VISU AL IZATION IN P YTH ON

slide-34
SLIDE 34

Working with images

IN TR OD U C TION TO DATA VISU AL IZATION IN P YTH ON

Bryan Van de Ven

Core Developer of Bokeh

slide-35
SLIDE 35

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Images

Grayscale images: rectangular 2D arrays Color images: typically three 2D arrays (channels) RGB (Red-Green-Blue) Channel values: 0 to 1 (oating-point numbers) 0 to 255 (8 bit integers)

slide-36
SLIDE 36

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Loading images

img = plt.imread('sunflower.jpg') print(img.shape) (480, 640, 3) plt.imshow(img) plt.axis('off') plt.show()

slide-37
SLIDE 37

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Reduction to gray-scale image

collapsed = img.mean(axis=2) print(collapsed.shape) (480, 640) plt.set_cmap('gray') plt.imshow(collapsed, cmap='gray') plt.axis('off') plt.show()

slide-38
SLIDE 38

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Uneven samples

# nonuniform subsampling uneven = collapsed[::4,::2] print(uneven.shape) (120, 320) plt.imshow(uneven) plt.axis('off') plt.show()

slide-39
SLIDE 39

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Adjusting aspect ratio

plt.imshow(uneven, aspect=2.0) plt.axis('off') plt.show()

slide-40
SLIDE 40

INTRODUCTION TO DATA VISUALIZATION IN PYTHON

Adjusting extent

plt.imshow(uneven, cmap='gray', extent=(0,640,0,480)) plt.axis('off') plt.show()

slide-41
SLIDE 41

Let's practice!

IN TR OD U C TION TO DATA VISU AL IZATION IN P YTH ON