В настоящее время значение гистограммы d3 работает, но оно вызывается при наведении мыши:
g.append('g')
.selectAll('g')
.data(data)
.enter()
.append('g')
.attr('transform', d => 'translate(' + x0(d.State) + ',0)')
.selectAll('rect')
.data(d => keys.map(key => {return {key: key, value: d[key]}}))
.enter().append('rect')
.attr('x', d => x1(d.key))
.attr('y', d => y(d.value))
.attr('width', x1.bandwidth())
.attr('height', d => innerHeight - y(d.value))
.attr('fill', d => z(d.key))
.on('mouseover', tip.show)
.on('mouseout', tip.hide)
Вот код, использующий d3.tip
const tip = d3.tip()
.attr('class', 'd3-tip')
.offset([-10, 0])
.html(function(d) {
return "<strong><b style='color:#a9a9a9;font-size:18px;'>"+d.key+"</b>:</strong> <span class="+ GColor(d.key) +" style=font-size:16px; border: 1px solid green; padding: 0 20px 0 0 ><br><br>" + d.value + "</span>";
})
Этот код работает с использованием mouse hover
и d3.tip html отображается сверху.
Но вопрос таков: возможно ли отобразить d.value
при создании .enter().append('rect')
сразу после создания rect
без mouse hover
кода?
iv'e попробовал какую-то попытку, но безуспешно заменив этот код
.on('mouseover', tip.show)
что-то вроде .append('text').Text(d.value)
Любая отличная идея очень ценится.