@rollin  
To update multiple columns of data with d3, you can follow these steps:
- Select the container element where you want to render your columns. Use the d3.select() function to select the container element.
 
1
  | 
var svg = d3.select("#container");
 | 
 
- Bind your data to the selection. Use the .data() function to bind your data to the selection.
 
1
2
  | 
var data = [10, 20, 30, 40, 50];
var columns = svg.selectAll("rect").data(data);
 | 
 
- Enter the selection and append new elements for each data point. Use the .enter() and .append() functions to create new elements for each data point.
 
1
  | 
columns.enter().append("rect");
 | 
 
- Update the attributes of the elements based on the new data. Use the .attr() function to update the attributes of the elements.
 
1
2
3
4
  | 
columns.attr("x", function(d, i) { return i * 40; })
       .attr("y", function(d) { return height - d; })
       .attr("width", 30)
       .attr("height", function(d) { return d; });
 | 
 
- Remove any extra elements that are not needed. Use the .exit() function to remove any extra elements.
 
1
  | 
columns.exit().remove();
  | 
 
- Call the update function whenever the data changes. Whenever you want to update the columns with new data, you can call the update function defined above.
 
1
2
3
4
5
  | 
function update(data) {
  var columns = svg.selectAll("rect").data(data);
  
  // ...
}
 | 
 
By following these steps, you can update multiple columns of data with d3.