Platform
Resources
Pricing
Sign in
Contact us
Claudio Esperança
Computer Graphics & Visualization @ufrj.br
Workspace
Fork
Published
Data Visualization
By
Claudio Esperança
Edited
May 30, 2022
ISC
Fork of
Dorling Cartogram
6 stars
4
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
malhaBrasil
=
FileAttachment
(
"malhabrasil.json"
)
.
json
(
)
Insert cell
// Observe o uso de rewind para mudar as circulações dos polígonos para horária
feicoesMunicipio
=
rewind
(
topojson
.
feature
(
malhaBrasil
,
malhaBrasil
.
objects
.
foo
)
,
true
)
Insert cell
municipios
=
FileAttachment
(
"municipios.csv"
)
.
csv
(
)
Insert cell
Insert cell
Insert cell
municipioPorCodigo
=
new
Map
(
municipios
.
map
(
m
=>
[
m
[
"Código Município Completo"
]
,
m
]
)
)
Insert cell
populacaoMunicipio
=
FileAttachment
(
"populacao_municipio_2018.csv"
)
.
csv
(
)
Insert cell
populacaoPorCodigo
=
new
Map
(
populacaoMunicipio
.
map
(
p
=>
[
p
.
municipio
,
+
p
.
populacao
]
)
)
Insert cell
populacaoLimites
=
d3
.
extent
(
populacaoPorCodigo
.
values
(
)
)
Insert cell
Insert cell
projecao
=
d3
.
geoMercator
(
)
.
fitWidth
(
width
,
feicoesMunicipio
)
Insert cell
funcaoPath
=
d3
.
geoPath
(
projecao
)
Insert cell
limites
=
funcaoPath
.
bounds
(
feicoesMunicipio
)
Insert cell
razaoAspecto
=
{
let
[
[
xmin
,
ymin
]
,
[
xmax
,
ymax
]
]
=
limites
;
return
Math
.
abs
(
(
xmax
-
xmin
)
/
(
ymax
-
ymin
)
)
;
}
Insert cell
Insert cell
escalaCores
=
d3
.
scaleThreshold
(
[
1
,
10
,
100
,
1000
,
10000
]
,
d3
.
range
(
5
)
.
map
(
i
=>
d3
.
interpolateViridis
(
i
/
4
)
)
)
Insert cell
coresCirculos
=
d3
.
scaleOrdinal
(
d3
.
range
(
1
,
60
)
,
d3
.
schemeDark2
)
Insert cell
raio
=
d3
.
scaleSqrt
(
)
.
domain
(
populacaoLimites
)
.
range
(
[
1
,
Math
.
sqrt
(
width
*
width
)
/
50
]
)
Insert cell
legendaCirculos
=
legendCircle
(
)
.
tickValues
(
[
1e5
,
1e6
,
1e7
]
)
.
tickFormat
(
(
d
,
i
,
e
)
=>
{
const
val
=
d
>=
1e6
?
`${
d
/
1e6
} M`
:
`${
d
/
1e3
} m`
;
const
unit
=
i
===
e
.
length
-
1
?
" habitantes"
:
""
;
return
`${
val
}${
unit
}`
;
}
)
.
scale
(
raio
)
Insert cell
Insert cell
simulacao
=
{
feicoesMunicipio
.
features
.
forEach
(
(
node
)
=>
{
[
node
.
x
,
node
.
y
]
=
[
node
.
x0
,
node
.
y0
]
=
projecao
(
node
.
properties
.
centroide
)
;
return
node
;
}
)
;
const
simulacao
=
d3
.
forceSimulation
(
feicoesMunicipio
.
features
)
.
force
(
"x"
,
d3
.
forceX
(
(
d
)
=>
d
.
x0
)
)
.
force
(
"y"
,
d3
.
forceY
(
(
d
)
=>
d
.
y0
)
)
.
force
(
"collide"
,
d3
.
forceCollide
(
(
d
)
=>
0.2
+
raio
(
populacaoPorCodigo
.
get
(
d
.
properties
.
codarea
)
)
)
)
.
stop
(
)
;
//for (let i = 0; i < 120; i++) simulacao.tick();
return
simulacao
;
}
Insert cell
Insert cell
rewind
=
require
(
'https://bundle.run/@mapbox/geojson-rewind@0.5.0'
)
Insert cell
import
{
legend
}
from
"@d3/color-legend"
Insert cell
Insert cell
d3
=
require
(
"d3@6"
)
Insert cell
topojson
=
require
(
"topojson-client@3"
)
;
Insert cell
import
{
checkbox
}
from
"@jashkenas/inputs"
;
Insert cell
import
{
legendCircle
}
from
"@harrystevens/circle-legend"
;
Insert cell
import
{
toc
}
from
"@harrystevens/toc"
;
Insert cell
Purpose-built for displays of data
Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Try it for free
Learn more
Compare fork
Fork
View
Export
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
mapaCoropletico
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
malhaBrasil
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
feicoesMunicipio
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
municipios
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
getCircles
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
municipioPorCodigo
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
populacaoMunicipio
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
populacaoPorCodigo
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
populacaoLimites
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
projecao
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
funcaoPath
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
limites
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
razaoAspecto
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
escalaCores
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
coresCirculos
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
raio
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
legendaCirculos
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
simulacao
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
rewind
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
d3
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
topojson
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML