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.6k
Let your data SPEAK!
Beginning data visualization in Python
btel
September 03, 2012
Tweet
Share
Other Decks in Programming
See All in Programming
nuget-server - あなたが必要だったNuGetサーバー
kekyo
PRO
0
170
メタプログラミングで実現する「コードを仕様にする」仕組み/nikkei-tech-talk43
nikkei_engineer_recruiting
0
160
日本だけで解禁されているアプリ起動の方法
ryunakayama
0
370
Codexに役割を持たせる 他のAIエージェントと組み合わせる実務Tips
o8n
0
320
nilとは何か 〜interfaceの構造とnil!=nilから理解する〜
kuro_kurorrr
3
1.6k
Railsの気持ちを考えながらコントローラとビューを整頓する/tidying-rails-controllers-and-views-as-rails-think
moro
4
370
Ruby x Terminal
a_matsuda
7
580
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
480
エージェント開発初心者の僕がエージェントを作った話と今後やりたいこと
thasu0123
0
230
Codex の「自走力」を高める
yorifuji
0
360
Claude Code の Skill で複雑な既存仕様をすっきり整理しよう
yuichirokato
1
290
Agent Skills Workshop - AIへの頼み方を仕組み化する
gotalab555
14
7.9k
Featured
See All Featured
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
170
We Have a Design System, Now What?
morganepeng
55
8k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
51k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
140
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
180
A Soul's Torment
seathinner
5
2.4k
Optimizing for Happiness
mojombo
378
71k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Everyday Curiosity
cassininazir
0
150
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
880
How to Think Like a Performance Engineer
csswizardry
28
2.5k
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