100% относится к базовому размеру шрифта, который, если вы его не установили, будет пользовательским агентом браузера по умолчанию.
Чтобы получить эффект, который вам нужен, я бы использовал кусок javascript для настройки размера базового шрифта относительно размеров окна.
Я смог достичь своей цели, используя forceMnaybody () и получив х-координату из самих данных.
var simulation = d3.forceSimulation(data)
.force('charge', d3.forceManyBody().strength())
.force('x', d3.forceX().x(function(d) {
return d.x;
}))
.force('collision', d3.forceCollide().radius(function(d) {
return d.radius;
}))
.on('tick', tick);