d3 사용 / 툴팁 / 그래프 툴팁 그리기/ 차트 / 챠트 라이브러리 / chart library
codes
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<script src="https://unpkg.com/d3@6.7.0/dist/d3.min.js"></script>
<style type="text/css">
.tooltip {
position: absolute;
text-align: center;
padding: .2rem;
background: #313639;
color: #f9f9f9;
border: 0px;
border-radius: 8px;
pointer-events: none;
font-size: .7rem;
}
</style>
</head>
<body>
<script type="text/javascript">
// DOM ready
document.addEventListener('DOMContentLoaded', function() {
var data = [4, 8, 15, 16, 23, 42];
var x = d3.scaleLinear()
.domain([0, d3.max(data)])
.range([0, 420]);
var tooltip = d3.select("body")
.append("div")
.attr('class', 'tooltip')
.style("opacity", 0);
d3.select("body")
.selectAll("div")
.data(data)
.enter().append("div")
.style('border', '1px solid black')
.style("width", function(data) {
return x(data) + "px";
})
.text(function(data) {
return data;
})
.on("mouseover", function(evt, i){
// 이것으로 div 에 hover 될 때 동작을 변경시킬 수 있다.
d3.select(this).transition()
.duration(100)
.attr("r", 7);
// 툴팁이 보이게 만들어 준다.
tooltip.transition()
.duration(100)
.style("opacity", 1)
.text(evt.x);
})
.on("mousemove", function(evt){
const target = event.currentTarget
return tooltip.style("top", (evt.y-10)+"px").style("left",(evt.x+10)+"px");
})
.on("mouseout", function(){
d3.select(this).transition()
.duration(200)
.attr("r", 5);
tooltip.transition()
.duration(200)
.style("opacity", 0);
});
});
</script>
</body>
</html>
See also
- 쿠…sal: [컴] band-scale 에서 해당하는 x좌표의 data 를 가져오는 법
- 쿠...sal: [컴][자바스크립트] d3 cheat sheet
- 쿠...sal: [컴][웹] 괜찮은 chart library
- Awesome dataviz tools by Cube.js : 각종 차트 라이브러리 를 알려준다.
Reference
댓글 없음:
댓글 쓰기