Published
Edited
Apr 5, 2020
2 stars
Insert cell
Insert cell
Insert cell
Insert cell
// Require the d3 library
Insert cell
Insert cell
// Load the Seattle building permit data using `d3.csv()`
Insert cell
Insert cell
// Display a showing a subset of the data
Insert cell
Insert cell
Insert cell
// Inspect the data
Insert cell
Insert cell
Insert cell
// Get the first (zero-ith) element
Insert cell
Insert cell
// Access the PermitClass key of the first element
Insert cell
Insert cell
Insert cell
Insert cell
// How many observations (building permits) are in the dataset?
Insert cell
Insert cell
// Get a list of features in our dataset from the first observation
Insert cell
Insert cell
Insert cell
// Require the lodash package
Insert cell
Insert cell
// Get a list of the unique values of the `PermitClass` feature
Insert cell
Insert cell
// Get a list of the unique values of the `PermitClass` feature (only returning the string values of interest)
Insert cell
Insert cell
// What is the total number of housing units added across the dataset?
Insert cell
Insert cell
// Get the sum of three values (an example of d3.sum _without_ an accessor function)
Insert cell
// Get the sum of the total number of housing units added across the dataset
Insert cell
Insert cell
// What is the average estimated project cost?
Insert cell
// What is the standard deviation across project cost?
Insert cell
// What is the most expensive project?
Insert cell
Insert cell
// First Permit Issue date
Insert cell
Insert cell
// Create a time parsing function based on the structure of the date-strings in our data
Insert cell
Insert cell
// Parse the date of the first permit issued
Insert cell
Insert cell
// Get the extent (min and max) of the dates in the dataset
Insert cell
Insert cell
// Define a formatting function for *displaying* date objects
Insert cell
Insert cell
// Write out a sentence describing the date range
Insert cell
Insert cell
Insert cell
// How many projects have been completed? Only keep the objects where the StatusCurrent is "Completed"
Insert cell
// How many permits have been issued in 2020? Only keep the objects where year is 2020
// Note, we need to parse the date of each object, then get the *year* to perform the filter
Insert cell
// What is the description of the most expensive project?
Insert cell
Insert cell
// Calculate permits per year using plain old JavaScript
Insert cell
Insert cell
// Calculate permits per year using lodash -- wow, so much easier!
Insert cell
Insert cell
// Use the Object.keys() method to convert our object into an array of objets
Insert cell
Insert cell
// Create a function to nest data by a feature called "PermitClass"
Insert cell
Insert cell
// Using the method defined above, create a nested data structure out of our data (by PermitClass)
Insert cell
Insert cell
// Create a function that will count the number of elements in each PermitClass
Insert cell
Insert cell
// Count the number of elements in each class -- wow!
Insert cell
Insert cell
// Create a nested data structure that has the number of permits, average cost, and highest cost
// for each PermitClass
Insert cell
Insert cell
// Load the vega-lite package
Insert cell
// Create a bar chart of the number of permits of each class
Insert cell
Insert cell
Insert cell
// Clone our summary_by_class data so we can sort it (for demonstration only)
Insert cell
Insert cell
// Here is our sorting function to sort by the number of permits (recall data structure above)
Insert cell
// Sort the data using the function described above (which could have been written in line)
Insert cell
Insert cell
// Make a bar chart of the number of permits -- same code as above, but using the sorted_data
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
carat = html`<svg width="8" height="8" class="observablehq--caret">
<path d="M7 4L1 8V0z" fill="currentColor"></path>
</svg>`
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.
Learn more