'Insert some texts into D3 Rect element
I have a problem and I need your helps! I want to insert some texts into my D3 rect element and I tried many ways but they don't work.
Here is the expected element:
And here is my current element:
Here is my code:
selection.append('rect')
.attr('abc','testd3')
.attr('crewID', '' + crewData.CrewID)
.attr('class', 'crew-duty-' + crewData.UserDutyID)
.attr('x',xScale(moment(item.Date)))
.attr('y', 80)
.attr('width', 100)
.attr('height', 20)
.attr('fill', colorOnOff)
.attr('ng-show', true)
.attr('tooltip-type','crewRotationTooltip')
.on("click",function(e){
manageScheduleDialog.init({
data: e,
time: item.Date,
rotation: item
}).then(function(data){ $rootScope.$broadcast('eventManageScheduleDialog', data);
console.log("reload page!");
})
}).on("mouseover", function(d){
tip.show(crewData, 'crewRotationTooltip', item);
}).on("mouseout", function(){
tip.hide();`enter code here`
});
Please show me how to insert some texts in to my element. Thank you a lot!
Solution 1:[1]
Next time edit your code and use snippet so other can clearly understand what you means
d3.select('body').append('svg')
//group it
.append('g').attr('class','test')
.append('rect')
.attr('abc','testd3')
.attr('class', 'crew-duty-')
.attr('x',30)
.attr('y', 80)
.attr('width', 100)
.attr('height', 20)
.attr('fill', 'blue')
.attr('ng-show', true)
.attr('tooltip-type','crewRotationTooltip')
//.on("click")
//.on("mouseover")
//.on("mouseout");
//i dont know what you are aiming for but your code generate this
//insert text on it?
//make group before create react
d3.selectAll('.test').each(function(d,i){
d3.select(this).append('text')
.attr('y',95)
.attr('x',35)
.attr('text-anchor','left')
.attr('fill','white')
.text('On -Full Pay')
})
//done
//if not you cant, it append on element but not correct appened, it will not show
d3.selectAll('.crew-duty-').each(function(d,i){
d3.select(this).append('text')
.attr('y',95)
.attr('x',35)
.attr('text-anchor','left')
.attr('fill','white')
.text('SOLOLOLO')
})
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.2.3/d3.min.js"></script>
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
</body>
</html>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | KEKUATAN |