In this post, we will look at how to add the following to a bar graph using d3.js.
Before we begin, you need the initial code that has a bar graph already created. This is shown below follow by what it should look like before we make any changes.
The first change is in line 16-19. Here, we change the name of the variable and modify the type of element it creates.
Our next change begins at line 27 and continues until line 38. Here we make two changes. First, we make a variable called barGroup, which selects all the group elements of the variable g. We also use the data, enter, append and attr methods. Starting in line 33 and continuing until line 38 we use the append method on our new variable barGroup to add rect elements as well as the color and size of each bar. Below is the code.
The last step for adding text appears in lines 42-50. First, we make a variable called textTranslator to move our text. Then we append the text to the bargroup variable. The color, font type, and font size are all set in the code below followed by a visual of what our graph looks like now.
Margins serve to provide spacing in a graph. This is especially useful if you want to add axes. The changes in the code take place in lines 16-39 and include an extensive reworking of the code. In lines 16-20 we create several variables that are used for calculating the margins and the size and shape of the svg element. In lines 22-30 we set the attributes for the svg variable. In line 32-34 we add a group element to hold the main parts of the graph. Lastly, in lines 36-40 we add a gray background for effect. Below is the code followed by our new graph.
In order for this to work, we have to change the value for the variable maxValue to 150. This would give a little more space at the top of the graph. The code for the axis goes form line 74 to line 98.
- Line 74-77 we create variables to set up the axis so that it is on the left
- Lines 78-85 we create two more variables that set the scale and the orientation of the axis
- Lines 87-99 sets the visual characteristics of the axis.
Below is the code followed by the updated graph
You can see the scale off to the left as planned..