+ All Categories
Home > Technology > Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

Date post: 21-Jun-2015
Category:
Upload: andrea-lazzarotto
View: 465 times
Download: 1 times
Share this document with a friend
Description:
Ho tenuto questo intervento su Sage al Linux Day 2013 organizzato a Bassano del Grappa dall'associazione GrappaLUG. Il video del talk è disponibile all'indirizzo: http://www.youtube.com/watch?v=qEqX3M2m5ZY
31
Dat Visualizati n Le funzionalità matematiche di Sage per la visualizzazione dei dati Andrea Lazzarotto http://andrealazzarotto.com
Transcript
Page 1: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

Dat Visualizati nLe funzionalità matematiche di Sage per la visualizzazione dei dati

Andrea Lazzarottohttp://andrealazzarotto.com

Page 2: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

Caratteristiche

Oltre 90 componenti

Grafica avanzata

Linguaggio Python

Page 3: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

Interfaccia web

Page 4: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

Non un banale foglio di calcolo

Page 5: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

Percorso

Importare i dati

Funzioni built-in

Grafici complessi

Page 6: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

Importarei dati

Page 7: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

infile = open('bunny.txt','r')d = []for l in infile:

d.append(l.split(' ')) .txt

Page 8: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

infile = open('bunny.csv','r')import csvd = list(csv.reader(infile)) .csv

Page 9: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

html(table(

[['x','y','z']] +d[:10],header_row = True

))

Page 10: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

import urllib2 as Uinfile = U.urlopen('http://example.com/data.txt')d = []for l in infile:

d.append(l.split(' '))

Page 11: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

Le liste

a = [1,2,3,4]

b = [[1,3], [6], [1,2,5]]

c = [(5,8,6), 'linux', 7.352]

Page 12: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

[i^2 + 3 for i in a]

[4, 7, 12, 19]

Page 13: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

Funzioni built-in

Page 14: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

v = [random() for i in [0..9]]list_plot(v, transparent=True, size=40)

Page 15: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

coords = enumerate(v)line(coords, transparent=True)

Page 16: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

scatter_plot(california, edgecolor=[.4,.4,.4,1],\marker='+', markersize=1, aspect_ratio='1',\axes_labels=['Lon','Lat'], transparent=True)

Page 17: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

Solo due dimensioni?

Funzioni precedenti → point3d

point3d(bunny[::10], size=20, color='brown')

http://graphics.stanford.edu/data/3Dscanrep/

Page 18: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati
Page 19: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

m = random_matrix(ZZ, 5, 5)matrix_plot(m, cmap='autumn', transparent=True)

Page 20: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

Opzioni

color='red'

axes=False

frame=True

thickness=8

...

Page 21: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

Esportazione

g = scatter_plot(d)

g.save('graficobellissimo.png')

g.save('graficobellissimo.svg')

g.save('graficobellissimo.pdf')

Page 22: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

Grafici complessi

Page 23: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

Fitting

v = [(i, random()*0.5-0.25 + i^2+i+1)for i in srange(0,4,0.2)]

# v -> simulazione di x^2 + x + 1

var('a b c')f(x) = a*x^2 + b*x + c

sol = find_fit(v, f, solution_dict=True)

A = scatter_plot(v)B = plot(f.subs(sol), (x, 0, v[-1][0]))

(A+B).show(transparent=True)

Page 24: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati
Page 25: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

Interpolazionepoints = [[x,y] for [x,y,z] in bunny]values = [z for [x,y,z] in bunny]xv = [float(x) for [x,y] in points]yv = [float(y) for [x,y] in points]

import numpy as npgrid_x, grid_y = np.mgrid[min(xv):max(xv):200jr, min(yv):max(yv):200jr]

from scipy.interpolate import griddatagrid_z = griddata(points, values,

(grid_x, grid_y), method='linear')

http://docs.scipy.org/doc/scipy/reference/tutorial/interpolate.html

Page 26: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

matrix_plot(grid_z.T, origin='lower',cmap='BrBG_r', transparent=True)

Page 27: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

Matplotlib con Pylab

import matplotlib.pyplot as pltfrom pylab import figure, savefig

def twobar(dA, dB, xlabel, ylabel, ticks, suff):fig = figure()ax = fig.add_subplot(1,1,1)

i = range(len(dA))ax.bar(i, dB, align='center', linewidth=4,

facecolor='#bb0000', edgecolor='white')ax.bar(i, dA, fill=False, align='center',

edgecolor='#666666')

Page 28: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

ax.set_xticks(i)ax.set_xticklabels([str(d) + suff

for d in ticks])

ax.set_xlabel(xlabel)ax.set_ylabel(ylabel)ax.xaxis.labelpad = 12

savefig("output.png", transparent=True)

twobar(datiA, datiB, 'Percentuale', 'Elementi',[2,4,6,8], "%")

Page 29: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati
Page 30: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

Conclusione

Numerosi elementi base

Infinite varianti

Vari livelli di complessità

Page 31: Data Visualization — Le funzionalità matematiche di Sage per la visualizzazione dei dati

?


Recommended