D3.js is a JavaScript library for manipulating documents based on data. It allows to build absolutely any type of data visualization. This document displays 10 interactive examples illustrating the key concepts of d3, leading to a first basic scatterplot. Note that this online course is a great resource to get you started with d3.js.
HTML?→ Explanation:
h1 tag, a paragraph with the
p tag, an image by the img tag and so on.
→ Example:
First html document
This is my first sentence
This is a link to the d3 graph gallery
→ Try:
test.html. Open it with a browser. You've created
your first website!
CSS→ Explanation:
html before.
css. If it is new for you,
check this
tutorial.
→ Example:
First html document
This is my first sentence
This is a link to the d3 graph gallery
→ Try:
inGreen to one of the paragraph
p
font-size: 20px in css.
SVG→ Explanation:
svg shapes put
together. For instant, a scatterplot is just composed by several
circles as the one shown below.
→ Example:
First html document
This is my first sentence
→ Try:
svg call to understand
what feature they control.
Javascript and D3.js
→ Explanation:
target and modify its stroke-width.
→ Example:
First html document
This is my first sentence
→ Try:
opacity style that
goes between 0 and 1.
Console.log() is your friend.→ Explanation:
Html, Css and
Javascript code and shows the result as a webpage.
console.log("sometext") in your javascript code
→ Explanation:
svg element. This element has a width and
a height, given in pixels.
x=0 and y=0. The bottom left
corner has the coordinate x=0 and
y=height. The top right corner has the coordinate
x=width and height=0
→ Example:
→ Try:
→ Explanation:
scale
svg area is 400px
width. 0% → 0px. 100% → 400px. 50% → 200px.
domain (0 to 100% here) and a
range (0 to 400px here)
x. If you
run x(10), d3 returns the position in px for this value
→ Example:
→ Try:
domain and range values to
understand how it works.
→ Explanation:
scale. This
scale specifies where the axis must be placed, and
what range it should indicate.
axisBottom() creates a horizontal axis,
with ticks and labels at the bottom. axisLeft() will be
used later for the Y axis
→ Example:
→ Try:
domain and range values to
understand how it works.
→ Explanation:
.attr("transform", "translate(20,50)") to an
element with translate it 20px to the right and 50px to the bottom.
svg area, creating a bit of margin around the chart
without having to think about it in the rest of the code. It is
important to understand how it works since almost all d3.js chart
start that way.
→ Example:
→ Try:
svg variable creation.→ Explanation:
svg: this select the svg area where the chart takes
place
.selectAll("whatever"): select all the elements that
have not be created yet, I know it is weird.
.data(data): specify the data to use..enter(): start a loop for the data. Following code
will be applied to data[0], data[1] and
so on.
.append("circle"): for each iteration, add a circle.
.attr("cx", function(d){ return x(d.x) }): gives the
x position of the circle. Here d will be
data[0], then data[1] and so on. Thus
d.x is the value of x, and
x(d.x) is the corresponding position in pixel found
thanks to the x scale.
→ Example:
→ Note:
This is probably the most difficult concept in d3.js. And it is used in almost every single chart. It is actually the power of d3: binding data to elements
It is probably a good idea to read more on this topic. Check d3 in depth and Dashing d3.js.
next?This document is a very very short intro to d3.js. However, it describes the basic concepts that are used in almost every chart.
You're now probably ready to explore the gallery. For each chart section, there is a very basic example to start with.