Platform
Solutions
Resources
Pricing
Sign in
Sign up
Carlos Sandoval Olascoaga
Big walls, cities, computing, and design.
Workspace
Fork
Published
By
Carlos Sandoval Olascoaga
Edited
Feb 21, 2019
Fork of
Introduction to zebras - a data analysis library for JavaScript
•
4 forks
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
z
=
require
(
'https://bundle.run/zebras@0.0.11'
)
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
rainAmounts
=
[
18.3
,
19
,
14.1
]
Insert cell
rainDates
=
Array
.
from
(
{
length
:
3
}
,
(
_
,
i
)
=>
Date
.
now
(
)
-
1000
*
60
*
60
*
24
*
i
)
Insert cell
Insert cell
rainfall
=
{
let
rainDF
=
[
]
for
(
var
i
=
0
;
i
<
rainAmounts
.
length
;
i
++
)
{
rainDF
.
push
(
{
precipitation
:
rainAmounts
[
i
]
,
date
:
rainDates
[
i
]
}
)
}
return
rainDF
}
Insert cell
Insert cell
daySeries
=
[
"Monday"
,
"Tuesday"
,
"Wednesday"
]
Insert cell
z
.
addCol
(
"day"
,
daySeries
,
rainfall
)
Insert cell
Insert cell
columns
=
Object
.
keys
(
rainfall
[
0
]
)
Insert cell
Insert cell
shape
=
(
{
rows
:
rainfall
.
length
,
columns
:
Object
.
keys
(
rainfall
[
0
]
)
.
length
}
)
Insert cell
Insert cell
Insert cell
migrationUrl
=
"https://gist.githubusercontent.com/cesandoval/b834ac93c07e03ec5205843b97f68017/raw/90951b60444376eebfcbbee9beca00c083f489f6/API_SM.POP.NETM_DS2_en_csv_v2_10473747.csv"
Insert cell
migration
=
d3
.
csv
(
migrationUrl
)
Insert cell
Insert cell
Insert cell
Insert cell
z
.
head
(
5
,
migration
)
Insert cell
Insert cell
Insert cell
migration
.
length
Insert cell
Insert cell
(
{
rows
:
migration
.
length
,
columns
:
Object
.
keys
(
migration
[
0
]
)
.
length
}
)
Insert cell
Insert cell
Insert cell
firstRow
=
Object
.
values
(
migration
[
0
]
)
Insert cell
lastRow
=
Object
.
values
(
migration
[
migration
.
length
-
1
]
)
Insert cell
randomRow
=
Object
.
values
(
migration
[
Math
.
floor
(
Math
.
random
(
)
*
migration
.
length
)
]
)
Insert cell
Insert cell
migrationColumns
=
Object
.
keys
(
migration
[
0
]
)
Insert cell
Insert cell
numericalColumns
=
migrationColumns
.
slice
(
0
,
migrationColumns
.
length
-
4
)
Insert cell
migrationParsed
=
z
.
parseNums
(
numericalColumns
,
migration
)
Insert cell
Insert cell
z
.
head
(
5
,
migrationParsed
)
Insert cell
Insert cell
countryName
=
z
.
getCol
(
'Country Name'
,
migrationParsed
)
Insert cell
Insert cell
z
.
describe
(
z
.
getCol
(
'1962'
,
migrationParsed
)
)
Insert cell
Insert cell
z
.
valueCounts
(
z
.
getCol
(
'Indicator Code'
,
migrationParsed
)
)
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
z
.
print
(
[
{
minReturn
:
z
.
min
(
dailyReturns
)
.
toFixed
(
5
)
,
maxReturn
:
z
.
max
(
dailyReturns
)
.
toFixed
(
5
)
,
meanDailyReturn
:
z
.
mean
(
dailyReturns
)
.
toFixed
(
5
)
,
medianDailyReturn
:
z
.
median
(
dailyReturns
)
.
toFixed
(
5
)
,
dailyVolatility
:
z
.
std
(
dailyReturns
)
.
toFixed
(
5
)
}
]
)
Insert cell
Insert cell
vegalite
(
{
data
:
{
values
:
dataRolling
}
,
width
:
700
,
height
:
350
,
mark
:
{
type
:
"line"
,
strokeWidth
:
.9
}
,
encoding
:
{
x
:
{
field
:
"Date"
,
type
:
"temporal"
}
,
y
:
{
field
:
"rollingVolatility"
,
type
:
"quantitative"
,
scale
:
{
type
:
'linear'
}
}
}
}
)
Insert cell
Insert cell
Insert cell
Insert cell
dates
=
z
.
deriveCol
(
r
=>
Date
.
parse
(
r
.
Date
)
,
dataWithReturns
)
Insert cell
dataDates
=
z
.
addCol
(
'DateStamp'
,
dates
,
dataWithReturns
)
Insert cell
days
=
[
'Sunday'
,
'Monday'
,
'Tuesday'
,
'Wednesday'
,
'Thursday'
,
'Friday'
,
'Saturday'
]
Insert cell
daysOfWeek
=
z
.
deriveCol
(
x
=>
days
[
(
new
Date
(
x
.
DateStamp
)
)
.
getDay
(
)
]
,
dataDates
)
Insert cell
dataDays
=
z
.
addCol
(
'Day'
,
daysOfWeek
,
dataDates
)
Insert cell
dataGrouped
=
z
.
groupBy
(
x
=>
x
.
Day
,
dataDays
)
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
dataPiped
=
z
.
pipe
(
[
z
.
parseNums
(
[
'Open'
,
'High'
,
'Low'
,
'Close'
,
'Adj Close'
,
'Volume'
]
)
,
z
.
getCol
(
'Close'
)
,
z
.
pctChange
(
)
,
z
.
mean
(
)
]
)
(
data
)
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
data
=
d3
.
csv
(
"https://gist.githubusercontent.com/nickslevine/b518a5fc788099d8955e77b4a4dc0628/raw/60edf99d70141a44c05fc73dff758c219f1684b4/sandp.csv"
)
Insert cell
dataParsed
=
z
.
parseNums
(
[
'Open'
,
'High'
,
'Low'
,
'Close'
,
'Adj Close'
,
'Volume'
]
,
data
)
Insert cell
vegalite
=
require
(
"@observablehq/vega-lite"
)
Insert cell
Insert cell
prices
=
z
.
getCol
(
'Close'
,
dataParsed
)
Insert cell
dailyReturns
=
z
.
pctChange
(
prices
)
Insert cell
dataWithReturns
=
z
.
addCol
(
'DailyReturns'
,
dailyReturns
,
dataParsed
)
Insert cell
dataSorted
=
z
.
sortByCol
(
'DailyReturns'
,
'asc'
,
dataWithReturns
)
Insert cell
rollingVolatility
=
z
.
rolling
(
z
.
std
,
252
,
dailyReturns
)
Insert cell
rollingMean
=
z
.
rolling
(
z
.
mean
,
252
,
dailyReturns
)
Insert cell
dataRolling
=
z
.
pipe
(
[
z
.
addCol
(
'rollingVolatility'
,
rollingVolatility
)
,
z
.
addCol
(
'rollingMean'
,
rollingMean
)
,
]
)
(
dataWithReturns
)
Insert cell
annualisedVolatility
=
z
.
deriveCol
(
(
x
=>
x
.
rollingVolatility
*
Math
.
sqrt
(
252
)
)
,
dataRolling
)
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.
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
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
z
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
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
rainAmounts
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
rainDates
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
rainfall
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
daySeries
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
columns
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
shape
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
migrationUrl
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
migration
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
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
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
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
firstRow
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
lastRow
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
randomRow
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
migrationColumns
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
numericalColumns
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
migrationParsed
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
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
countryName
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
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
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
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
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
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
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
dates
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
dataDates
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
days
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
daysOfWeek
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
dataDays
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
dataGrouped
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
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
dataPiped
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
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
data
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
dataParsed
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
vegalite
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
d3
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
prices
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
dailyReturns
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
dataWithReturns
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
dataSorted
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
rollingVolatility
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
rollingMean
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
dataRolling
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
annualisedVolatility
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML