JSFiddle - React, Tailwind, and code Playground
JavaScript
var root = d3.select('body').append('svg'),
data1 = [{'name':'foo','value':10},{'name':'foo','value':3},{'name':'foo','value':8},{'name':'bar','value':10},{'name':'bar','value':1},{'name':'bar','value':15}],
data2 = [{'name':'foo','color':'green','x':10},{'name':'bar','color':'blue','x':70}];
console.log('foo')
var groups = root.selectAll('g')
.data(data2)
.enter()
.append('g')
.attr('transform',function(d){return 'translate(' + d.x + ',10)'})
.each(addCircles);
function addCircles(d){
d3.select(this).selectAll('circle')
.data(data1.filter(function(D){return D.name == d.name }))
.enter()
.append('circle')
.attr('r',5)
.attr('cx', 0)
.attr('cy', function(D){return D.value * 30})
.style('fill',d.color)
}