Date post: | 21-Jun-2015 |
Category: |
Technology |
Upload: | andrea-lazzarotto |
View: | 465 times |
Download: | 1 times |
Dat Visualizati nLe funzionalità matematiche di Sage per la visualizzazione dei dati
Andrea Lazzarottohttp://andrealazzarotto.com
Caratteristiche
Oltre 90 componenti
Grafica avanzata
Linguaggio Python
Interfaccia web
Non un banale foglio di calcolo
Percorso
Importare i dati
Funzioni built-in
Grafici complessi
Importarei dati
infile = open('bunny.txt','r')d = []for l in infile:
d.append(l.split(' ')) .txt
infile = open('bunny.csv','r')import csvd = list(csv.reader(infile)) .csv
html(table(
[['x','y','z']] +d[:10],header_row = True
))
import urllib2 as Uinfile = U.urlopen('http://example.com/data.txt')d = []for l in infile:
d.append(l.split(' '))
Le liste
a = [1,2,3,4]
b = [[1,3], [6], [1,2,5]]
c = [(5,8,6), 'linux', 7.352]
[i^2 + 3 for i in a]
↓
[4, 7, 12, 19]
Funzioni built-in
v = [random() for i in [0..9]]list_plot(v, transparent=True, size=40)
coords = enumerate(v)line(coords, transparent=True)
scatter_plot(california, edgecolor=[.4,.4,.4,1],\marker='+', markersize=1, aspect_ratio='1',\axes_labels=['Lon','Lat'], transparent=True)
Solo due dimensioni?
Funzioni precedenti → point3d
point3d(bunny[::10], size=20, color='brown')
http://graphics.stanford.edu/data/3Dscanrep/
m = random_matrix(ZZ, 5, 5)matrix_plot(m, cmap='autumn', transparent=True)
Opzioni
color='red'
axes=False
frame=True
thickness=8
...
Esportazione
g = scatter_plot(d)
g.save('graficobellissimo.png')
g.save('graficobellissimo.svg')
g.save('graficobellissimo.pdf')
Grafici complessi
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)
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
matrix_plot(grid_z.T, origin='lower',cmap='BrBG_r', transparent=True)
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')
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], "%")
Conclusione
Numerosi elementi base
Infinite varianti
Vari livelli di complessità
?