D3.js에서 마우스 오버시 원형 차트의 다른 세그먼트를 변경하는 방법은 무엇입니까?

Rinatoptimus

이제 "이"세그먼트에 마우스를 올리면 불투명도가 변경됩니다. 다른 세그먼트가 "this"가 아닌 불투명도를 변경하도록 만드는 방법은 무엇입니까? 순수 자바 스크립트에서.

길샤

배열 filter함수를 사용 하여 다른 파이 조각을 찾을 수 있습니다 .

filter () 메서드는 제공된 함수에 의해 구현 된 테스트를 통과하는 모든 요소로 새 배열을 만듭니다.

암호:

var g = svg.selectAll(".arc")
    .data(pie(data))
    .enter().append("g")
    .attr("class", "arc")
    .on('mouseover', function() {
        var current = this;
        var others = svg.selectAll(".arc").filter(function(el) {
            return this != current
        });
        others.selectAll("path").style('opacity', 0.8);
    })
    .on('mouseout', function() {
        var current = this;
        var others = svg.selectAll(".arc").filter(function(el) {
            return this != current
        });
        others.selectAll("path").style('opacity', 1);
    });

var json_data = [{
  "sex": "male",
  "name": "Ted",
  "age": 23
}, {
  "sex": "male",
  "name": "Mark",
  "age": 33
}, {
  "sex": "female",
  "name": "Mary",
  "age": 32
}, {
  "sex": "male",
  "name": "Valery",
  "age": 26
}, {
  "sex": "female",
  "name ": "Olga",
  "age": 29
}, {
  "sex": "male",
  "name": "John",
  "age": 26
}];

var width = 960,
  height = 500,
  radius = Math.min(width, height) / 2;

var color = d3.scale.ordinal()
  .range(["#98abc5", "#8a89a6", "#7b6888", "#6b486b", "#a05d56", "#d0743c", "#ff8c00"]);

var percentageFormat = d3.format("%");

var arc = d3.svg.arc()
  .outerRadius(radius - 10)
  .innerRadius(0);

var pie = d3.layout.pie()
  .sort(null)
  .value(function(d) {
    return d.values;
  });

var svg = d3.select("body").append("svg")
  .attr("width", width)
  .attr("height", height)
  .append("g")
  .attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");


//d3.json("staff3.json", function(error, json_data) {

  var data = d3.nest()
    .key(function(d) {
      return d.sex;
    })
    .rollup(function(d) {
      return d.length;
    }).entries(json_data);

  data.forEach(function(d) {
    d.percentage = d.values / json_data.length;
  });

  console.log("data variable", data);
  console.log("pie(data)", pie(data));

  var g = svg.selectAll(".arc")
    .data(pie(data))
    .enter().append("g")
    .attr("class", "arc")
    .on('mouseover', function() {
      var current = this;  
      var others = svg.selectAll(".arc").filter(function(el) {
        return this != current
      });
      others.selectAll("path").style('opacity', 0.8);
    })
    .on('mouseout', function() {
      var current = this;
      d3.select(this)
        .style('opacity', 1);
      var others = svg.selectAll(".arc").filter(function(el) {
        return this != current
      });
      others.selectAll("path").style('opacity', 1);
    })   

  g.append("path")
    .attr("d", arc)
    .style("fill", function(d, i) {
      return color(i);
    });

  g.append("text")
    .attr("transform", function(d) {
      return "translate(" + arc.centroid(d) + ")";
    })
    .attr("dy", ".35em")
    .style("text-anchor", "middle")
    .text(function(d) {
      console.log("d is", d);
      return percentageFormat(d.data.percentage);
    });
//});
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

D3에서 원형 차트의 위치를 변경하는 방법은 무엇입니까?

분류에서Dev

마우스 오버 텍스트 상자가있는 원을 d3.js 다중 선 차트에 추가하는 방법은 무엇입니까?

분류에서Dev

원형 차트에서 마우스 오버를 사용하고 d3 js에서 레이블 표시

분류에서Dev

D3에서 마우스 오버시 막대를 더 크게 만드는 방법은 무엇입니까?

분류에서Dev

다른 파일에서 동적 인 텍스트 세그먼트를 바꾸는 방법은 무엇입니까?

분류에서Dev

마우스 오버시 원형 매핑 된 이미지를 변경하는 방법은 무엇입니까?

분류에서Dev

IOS Swift 3의 원형 차트 섹션에서 텍스트를 제거하는 방법은 무엇입니까?

분류에서Dev

d3의 항목 쌍에서 마우스 오버 이벤트를 수행하는 방법은 무엇입니까?

분류에서Dev

"마우스 오버시 막대 차트에서 데이터를 표시하고 색상을 변경하는 방법은 무엇입니까?"

분류에서Dev

dc.js : 다른 입력 임계 값을 사용하여 원형 차트의 데이터 분포를 변경하는 방법은 무엇입니까?

분류에서Dev

원형 차트에서 마우스 오버를 사용하고 d3 v3 js에서 레이블 표시

분류에서Dev

텍스트 파일에서 세그먼트를 가져 오는 가장 좋은 방법은 무엇입니까?

분류에서Dev

버튼 클릭 및 마우스 오버 / 마우스 아웃으로 노드 텍스트를 표시하고 숨기는 방법은 무엇입니까? D3 / JS

분류에서Dev

라이브 차트 DataTooltip에 현재 마우스 오버 만 표시하는 방법은 무엇입니까?

분류에서Dev

동시에 매끄럽게 순서를 변경하고 마우스 오버시 새 단어 세그먼트를 표시합니다.

분류에서Dev

마우스 오버시 아이콘과 텍스트의 색상을 동시에 변경하는 방법은 무엇입니까?

분류에서Dev

마우스 오버시 QML에서 객체의 속성을 변경하는 방법은 무엇입니까?

분류에서Dev

부트 스트랩 팝 오버를 다른 div 옆에 표시하는 방법은 무엇입니까?

분류에서Dev

Amcharts 원형 차트는 마우스 오버시에만 국가를 표시합니다.

분류에서Dev

d3 버블 다이어그램에서 원을 조작하는 방법은 무엇입니까?

분류에서Dev

onsenui에서 선택한 "세그먼트 버튼"의 색상을 변경하는 방법은 무엇입니까?

분류에서Dev

마우스 오버시 원형 이미지를 어둡게하는 방법은 무엇입니까?

분류에서Dev

html 양식의 데이터로 d3.js 차트를 다시 그리는 방법은 무엇입니까?

분류에서Dev

html 양식의 데이터로 d3.js 차트를 다시 그리는 방법은 무엇입니까?

분류에서Dev

d3의 노드에 그려진 파이에 마우스 호버 속성을 추가하는 방법은 무엇입니까?

분류에서Dev

서로 다른 비디오 파일간에 공통으로 유지되는 장면 세그먼트를 결정하는 방법은 무엇입니까?

분류에서Dev

D3.js에서 레이블의 텍스트 각도를 변경하는 방법은 무엇입니까?

분류에서Dev

PHP에서 GET 변수없이 URL의 마지막 세그먼트를 얻는 방법은 무엇입니까?

분류에서Dev

Logitech G700에서 마이크로 스위치 (왼쪽 / 오른쪽 "마우스 버튼")를 변경하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    D3에서 원형 차트의 위치를 변경하는 방법은 무엇입니까?

  2. 2

    마우스 오버 텍스트 상자가있는 원을 d3.js 다중 선 차트에 추가하는 방법은 무엇입니까?

  3. 3

    원형 차트에서 마우스 오버를 사용하고 d3 js에서 레이블 표시

  4. 4

    D3에서 마우스 오버시 막대를 더 크게 만드는 방법은 무엇입니까?

  5. 5

    다른 파일에서 동적 인 텍스트 세그먼트를 바꾸는 방법은 무엇입니까?

  6. 6

    마우스 오버시 원형 매핑 된 이미지를 변경하는 방법은 무엇입니까?

  7. 7

    IOS Swift 3의 원형 차트 섹션에서 텍스트를 제거하는 방법은 무엇입니까?

  8. 8

    d3의 항목 쌍에서 마우스 오버 이벤트를 수행하는 방법은 무엇입니까?

  9. 9

    "마우스 오버시 막대 차트에서 데이터를 표시하고 색상을 변경하는 방법은 무엇입니까?"

  10. 10

    dc.js : 다른 입력 임계 값을 사용하여 원형 차트의 데이터 분포를 변경하는 방법은 무엇입니까?

  11. 11

    원형 차트에서 마우스 오버를 사용하고 d3 v3 js에서 레이블 표시

  12. 12

    텍스트 파일에서 세그먼트를 가져 오는 가장 좋은 방법은 무엇입니까?

  13. 13

    버튼 클릭 및 마우스 오버 / 마우스 아웃으로 노드 텍스트를 표시하고 숨기는 방법은 무엇입니까? D3 / JS

  14. 14

    라이브 차트 DataTooltip에 현재 마우스 오버 만 표시하는 방법은 무엇입니까?

  15. 15

    동시에 매끄럽게 순서를 변경하고 마우스 오버시 새 단어 세그먼트를 표시합니다.

  16. 16

    마우스 오버시 아이콘과 텍스트의 색상을 동시에 변경하는 방법은 무엇입니까?

  17. 17

    마우스 오버시 QML에서 객체의 속성을 변경하는 방법은 무엇입니까?

  18. 18

    부트 스트랩 팝 오버를 다른 div 옆에 표시하는 방법은 무엇입니까?

  19. 19

    Amcharts 원형 차트는 마우스 오버시에만 국가를 표시합니다.

  20. 20

    d3 버블 다이어그램에서 원을 조작하는 방법은 무엇입니까?

  21. 21

    onsenui에서 선택한 "세그먼트 버튼"의 색상을 변경하는 방법은 무엇입니까?

  22. 22

    마우스 오버시 원형 이미지를 어둡게하는 방법은 무엇입니까?

  23. 23

    html 양식의 데이터로 d3.js 차트를 다시 그리는 방법은 무엇입니까?

  24. 24

    html 양식의 데이터로 d3.js 차트를 다시 그리는 방법은 무엇입니까?

  25. 25

    d3의 노드에 그려진 파이에 마우스 호버 속성을 추가하는 방법은 무엇입니까?

  26. 26

    서로 다른 비디오 파일간에 공통으로 유지되는 장면 세그먼트를 결정하는 방법은 무엇입니까?

  27. 27

    D3.js에서 레이블의 텍스트 각도를 변경하는 방법은 무엇입니까?

  28. 28

    PHP에서 GET 변수없이 URL의 마지막 세그먼트를 얻는 방법은 무엇입니까?

  29. 29

    Logitech G700에서 마이크로 스위치 (왼쪽 / 오른쪽 "마우스 버튼")를 변경하는 방법은 무엇입니까?

뜨겁다태그

보관