Published
Edited
Jun 14, 2021
3 forks
Insert cell
Insert cell
Insert cell
Insert cell
dt_weights_raw = aq.loadCSV(url_weights)
Insert cell
Inputs.table(dt_weights_raw)
Insert cell
Insert cell
dt_weights_raw
.groupby('Sexo')
.count()
.view()
Insert cell
Insert cell
viewof weights1 = dt_weights_raw
.derive({altura_m:d=>d.Altura_Polegadas*.0254, peso_kg: d=>d.Peso_Libras/2.2})
.derive({imc: d=>d.peso_kg/(d.altura_m*d.altura_m)})
.view({height:240})
Insert cell
Insert cell

vl.markBoxplot({size:50})
.data(weights1)
.encode(
vl.y().fieldN('Sexo'),
vl.color().fieldN('Sexo'),
vl.x().fieldQ('altura_m').scale({zero:false})
)
.height(180)
.render()
Insert cell
Insert cell
vl.markCircle({size:2})
.data(weights1)
.encode(
vl.x().fieldQ("altura_m").scale({domain:[1.3,2.1]}),
vl.y().fieldQ("peso_kg").scale({domain:[20.,125]}),
vl.color().fieldN("Sexo")
)
.title("Peso vs Altura")
.width(500)
.render()
Insert cell
Insert cell
Insert cell
Insert cell
get_R2(weights1,'peso_kg','altura_m')
Insert cell
get_R2(weights1
.filter(d=>d.Sexo=="M"),'peso_kg','altura_m')
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
weights2_raw = aq.fromCSV(await FileAttachment('weights2.csv').text())
Insert cell
Inputs.table(weights2_raw)
Insert cell
Insert cell
five_nums(weights2_raw.columnArray('Age (yrs)'))
Insert cell
Insert cell
weights2_raw
.derive({age_months: d=>12*d['Age (yrs)']})
.select('Age (yrs)','age_months')
.view({height:240})
Insert cell
Insert cell
viewof weights2 = weights2_raw
.derive({faixa_de_idade:d=>(op.trunc(d['Age (yrs)']/10)*10+"-"+(op.trunc(1+d['Age (yrs)']/10)*10-1))},{before:1})
.view({height:240})
Insert cell
Insert cell
Insert cell
Insert cell
pearson_raw=aq.loadCSV(url_pearson)
Insert cell
Insert cell
vl.markPoint({filled:true,size:8})
.data(pearson_raw)
.encode(
vl.x().fieldQ('x'),
vl.y().fieldQ('x_quad')
).render()

Insert cell
viewof pearson_raw_ranked=pearson_raw
.orderby('x_quad')
.derive({x_quad_rank:op.row_number()})
.view({height:240})
Insert cell
vl.markPoint({filled:true,size:8})
.data(pearson_raw_ranked)
.encode(
vl.x().fieldQ('x'),
vl.y().fieldQ('x_quad_rank')
).render()
Insert cell
Insert cell
viewof pearson_folded=pearson_raw
.fold(aq.not('x'),{as:['série','valor']})
.view({height:240})
Insert cell
Insert cell
Insert cell
Insert cell
get_R2(pearson_raw,'x','x_lin')
Insert cell
Insert cell
Insert cell
get_R2(pearson_raw,'x','x_quad')
Insert cell
Insert cell
athletes_rio2016=aq.fromCSV(await FileAttachment("athletes.csv").text())
Insert cell
Inputs.table(athletes_rio2016.filter(d=>d.nationality=="BRA"))
Insert cell
Insert cell
Insert cell
anscombe_raw = aq.loadCSV(url_anscombe)
Insert cell
anscombe_raw
.view({height:240})
Insert cell
Insert cell
Insert cell
avg_stdev(anscombe_raw.columnArray('x1'))
Insert cell
avg_stdev(anscombe_raw.columnArray('x2'))
Insert cell
Insert cell
anscombe_raw.columnNames().map(d=>avg_stdev(anscombe_raw.columnArray(d)))
Insert cell
Insert cell
anscombe_raw.columnNames().map(d=>five_nums(anscombe_raw.columnArray(d)))
Insert cell
Insert cell
vl.markPoint()
.data(anscombe_raw)
.encode(
vl.x().fieldQ("x1"),
vl.y().fieldQ("y1")
)
.title("X1,Y1")
.width(500)
.render()
Insert cell
Insert cell
anscombe_raw
// selectiona e renomeia
.select({x1:'x',y1:'y'})
// .select(aq.endswith('1')).rename({x1:'x',y1:'y'})
.derive({set:1})
.view({height:240})
Insert cell
Insert cell
anscombe_concat = {
const t1 = anscombe_raw.select({x1:'x',y1:'y'}).derive({set:1});
const t2 = anscombe_raw.select({x2:'x',y2:'y'}).derive({set:2});
const t3 = anscombe_raw.select({x3:'x',y3:'y'}).derive({set:3});
const t4 = anscombe_raw.select({x4:'x',y4:'y'}).derive({set:4});
const t1234 = t1.concat([t2,t3,t4]) // concatena as 4 tabelas
.derive({sample:d=>op.row_number()},{before:0}) // adiciona contador de linhas
.relocate('set',{before:1}) // reposiciona coluna 'set' como 2a coluna
return t1234;
}
Insert cell
anscombe_concat.view({height:240})
Insert cell
Insert cell
vl.markCircle({size:50})
.data(anscombe_concat)
.encode(
vl.x().fieldQ("x"),
vl.y().fieldQ("y"),
vl.color().field('set')
)
.title("Quarteto de Anscombe")
.width(500)
.render()
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell

One platform to build and deploy the best data apps

Experiment and prototype by building visualizations in live JavaScript notebooks. Collaborate with your team and decide which concepts to build out.
Use Observable Framework to build data apps locally. Use data loaders to build in any language or library, including Python, SQL, and R.
Seamlessly deploy to Observable. Test before you ship, use automatic deploy-on-commit, and ensure your projects are always up-to-date.
Learn more