Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Let your data SPEAK!
Search
btel
September 03, 2012
Programming
1
2.5k
Let your data SPEAK!
Beginning data visualization in Python
btel
September 03, 2012
Tweet
Share
Other Decks in Programming
See All in Programming
いま中途半端なSwift 6対応をするより、Default ActorやApproachable Concurrencyを有効にしてからでいいんじゃない?
yimajo
2
130
AIで開発生産性を上げる個人とチームの取り組み
taniigo
0
120
WebエンジニアがSwiftをブラウザで動かすプレイグラウンドを作ってみた
ohmori_yusuke
0
160
Go Conference 2025: Goで体感するMultipath TCP ― Go 1.24 時代の MPTCP Listener を理解する
takehaya
7
1.3k
Django Ninja による API 開発効率化とリプレースの実践
kashewnuts
0
690
Pythonスレッドとは結局何なのか? CPython実装から見るNoGIL時代の変化
curekoshimizu
3
910
Web フロントエンドエンジニアに開かれる AI Agent プロダクト開発 - Vercel AI SDK を観察して AI Agent と仲良くなろう! #FEC余熱NIGHT
izumin5210
2
250
Repenser les filtres API Platform: une nouvelle syntaxe
vinceamstoutz
2
150
Serena MCPのすすめ
wadakatu
4
800
生成AIを活用した初学者向けPython講座
soogie
1
120
株式会社 Sun terras カンパニーデック
sunterras
0
160
Reactをクライアントで使わない
yusukebe
7
6.2k
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Facilitating Awesome Meetings
lara
56
6.6k
Navigating Team Friction
lara
189
15k
Designing Experiences People Love
moore
142
24k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
The World Runs on Bad Software
bkeepers
PRO
71
11k
Code Reviewing Like a Champion
maltzj
525
40k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
BBQ
matthewcrist
89
9.8k
Transcript
Let your data SPEAK! Introduction to data visualization Bartosz Telenczuk
Kiel, 2012 Monday, 3 September 2012
Monday, 3 September 2012
Monday, 3 September 2012
position length angle area saturation brightness volume shape hue Grouping
containment connection similarity proximity Monday, 3 September 2012
Monday, 3 September 2012
Monday, 3 September 2012
Visualization design principles Monday, 3 September 2012
Monday, 3 September 2012
Monday, 3 September 2012
Monday, 3 September 2012
Monday, 3 September 2012
Monday, 3 September 2012
Monday, 3 September 2012
Tools Monday, 3 September 2012
GET DATA PARSE IT PROCESS VISUALIZE PUBLISH urllib2 csv, beautifulsoup
numpy, scipy matplotlib, chaco, mayavi2 LaTeX, cherrypy Monday, 3 September 2012
John Hunter 1968-2012 Monday, 3 September 2012
Monday, 3 September 2012
plot scatter bar polar contour imshow Monday, 3 September 2012
import numpy as np import matplotlib.pyplot as plt t =
np.linspace(0, 2*np.pi, 100) #generate data y = np.sin(t) plt.plot(t, y) plt.xlabel('angle') #add axis labels plt.ylabel('amplitude') plt.xlim([0, 2*np.pi]) #set data limits plt.xticks([0, np.pi, 2*np.pi], #add tick labels ['0', r'$\pi$', r'2$\pi$']) plt.show() #show plot Monday, 3 September 2012
Monday, 3 September 2012
import matplotlib.pyplot as plt import matplotlib.patches as mpatches fig =
plt.figure(figsize=(5,5)) # create figure container ax = plt.axes([0,0,1,1], frameon=False) # create axes container art = mpatches.Circle((0.5, 0.5), 0.5, ec="none") # create an artist ax.add_patch(art) # add the artist to the # container ax.set_xticks([]) # remove axes ticks ax.set_yticks([]) plt.show() Monday, 3 September 2012
Monday, 3 September 2012
display transform data transform axes transform figure transform Monday, 3
September 2012
import numpy as np import matplotlib.pyplot as plt from matplotlib
import patches from matplotlib import transforms fig = plt.figure() ax = fig.add_subplot(111) x = 10*np.random.randn(1000) ax.hist(x, 30) trans = transforms.blended_transform_factory( ax.transData, ax.transAxes) rect = patches.Rectangle((8,0), width=10, height=1, transform=trans, color='gray', alpha=0.5) ax.add_patch(rect) plt.show() Monday, 3 September 2012
Interactivity Monday, 3 September 2012
import numpy from matplotlib.pyplot import figure, show def onpick(event): #
define a handler i = event.ind # indices of clicked points ax.plot(xs[i], ys[i], 'ro') # plot the points in red fig.canvas.draw() # update axes xs, ys = numpy.random.rand(2,100) fig = figure() ax = fig.add_subplot(111) line, = ax.plot(xs, ys, 'o', picker=5) # 5 points tolerance fig.canvas.mpl_connect('pick_event', onpick) # connect handler to event show() # enter the main loop Monday, 3 September 2012
Monday, 3 September 2012
points3d( ) contour3d( ) quiver3d( ) plot3d( ) Monday, 3
September 2012
from enthought.mayavi import mlab import numpy as np x, y
= np.ogrid[-10:10:100j, -10:10:100j] r = np.sqrt(x**2 + y**2) z = np.sin(r)/r mlab.surf(x,y, 10*z) mlab.outline() mlab.colorbar() Monday, 3 September 2012
Monday, 3 September 2012