Exploring survey data interactively - both axes
This interactive bar chart lets users explore survey data by changing both axes through dropdown menus. Selecting a variable re-nests the data using `d3.nest()` and updates the scales, axes, and bars with the general update pattern, including explicit enter, update, and exit selections. The visualization uses D3 v5 to render SVG elements, with data loaded from a JSON endpoint. The y-axis displays aggregated metrics like averages or totals computed via `d3.mean` and `d3.sum`, while the x-axis groups respondents by categorical fields.
AI-generated descriptionDynamic axes using the update pattern example
In this visualization, the data that's rendered in the view changes because of user interaction
Steps
- Make the nesting dynamic
- Nest on health, stress dynamically
- Make x-axis interactive so remove and enter are also needed
Concept
A chart showing distribution or relation between to variables. The vriables can be chosen through a dropdown menu resulting in a rerendering of datapoints and axis.
- Group students by a variable on the x axis.
- Get data from different vars on y axis
Notes
- Note that d3 has a new way of handling enter, update and exit explicitly as explained in this article.
- The options in the form are generated from the data using a data join
- The scales, the data and the selected opton are global. I found that to be nicer than to keep passing them everywhere
- If you want to add a new option to this interactive graph, all you have to do is add a new computed variable in the prepareData module and everything else will happen automatic
- Observe how prepareData module now exports 2 functions separately which we can use to have greater control over the transformation of data from our index.js file.