JSFiddle - React, Tailwind, and code Playground

HTML

<h4>a table</h4>
<div id="table"></div>

CSS

.line {
    fill: none;
    stroke: #000;
    stroke-width: 1.0px;
}

JavaScript

var columns = ['Fruit', 'Color', 'Lines']

var data = [
    ['Orange', 'Orange', [6,3,3,2,5]],
    ['Apple', 'Red', [6,2,6,5,5]],
    ['Grape', 'Purple', [9,1,2,3,1]]
]

// create table
var table = d3.select("#table").append("table");

var thead = table.append("thead").append("tr");

thead.selectAll("th")
    .data(columns)
    .enter()
    .append("th")
    .text(function(d) {
        return d;
    });

var tbody = table.append("tbody");

var trows = tbody
    .selectAll("tr")
    .data(data)
    .enter()
    .append("tr");

var tcells = trows
    .selectAll("td")
    .data(function(d, i) { return d; })
    .enter()
    .append("td")
    .text(function(d, i) { return d; });

// update (add a column with graphs)
thead.append("th").text('Graphs');

trows.selectAll("td.graph")  
//use a class so you don't re-select the existing <td> elements
          .data(function(d) {return [d[2]];})
          .enter()
            .append("td")
            .attr("class", "graph")
            .each(lines); 

// a sparklines plot
function lines(test) {  
    var width = 100, height = 20; 

    var data = []
    for (i = 0; i < test.length; i++) {
        data[i] = {
            'x': i,
            'y': +test[i]
        }
    }
    
    var x = d3.scale.linear()
        .range([0, width - 10])
        .domain([0,5]);
    
    var y = d3.scale.linear()
        .range([height, 0])
        .domain([0,10]);
    
    var line = d3.svg.line()
                .x(function(d) {return x(d.x)})
                .y(function(d) {return y(d.y)});
    
    d3.select(this).append('svg')
            .attr('width', width)
            .attr('height', height)
         .append('path')
            .attr('class','line')
            .datum(data)
            .attr('d', line);

}