R을 사용하여 감소를 시각화하는 가장 좋은 방법은 무엇입니까?


15

이 사이트를 통해 최근에 Sankey Diagrams를 발견했습니다. Sankey Diagrams는 전통적인 순서도 에서 일어나는 일을 시각화하는 좋은 방법 입니다.

다음은 George M. Whitesides와 George W. Crabtree ( 에너지에 대한 기본 기초 연구를 잊지 마십시오 Source) 의 Sankey Diagram의 좋은 예입니다 . 2007 년 2 월 9 일, 과학에 관한 장기 기본 연구를 잊지 마십시오 : Vol. 315. 아니오 5813, 796-798 쪽.

Sankey R-package가 없다는 것을 깨달은 후 온라인 에서 R 스크립트를 찾았습니다 . 불행히도이 스크립트는 상당히 원시적이고 다소 제한적입니다. 높은 기대 로 Sanover R 패키지 또는 stackoverflow에서보다 성숙한 기능을 요청 했지만 놀랍게도 R에서 Sankey Diagrams를 구축하기위한 성숙한 기능이없는 것처럼 보입니다.

현상금을 게시 한 후 Geek On Acid 는 기존 스크립트에서 약간의 해킹제안 할 수있을 정도로 친절하여 특정 목적을 위해 다소간 작동했습니다.

개선 된 R- 스크립트는이 다이어그램, Geek On Acid의 R- 산키 다이어그램 Source; stackoverflow.com .

그러나 R 패키지가 없다는 것은 Sankey Diagrams가 위의 다이어그램에 표시된 데이터 흐름에서 R을 사용하여 감소를 시각화하는 놀라운 방법이 아니라는 것을 나타냅니다 ( 데이터 및 R 코드에 대한 초기 스택 오버 플로우 질문 참조) . 감소를 시각화하는 더 좋은 방법이 있습니다.

R을 사용하여 데이터 흐름에서 감소를 시각화하는 가장 좋은 방법은 무엇이라고 생각하십니까?


7
다이어그램을 자동화 된 방식으로 멋지게 보이게하는 것은 매우 어렵습니다 (첫 번째 예는 아티스트가 수동으로 노드를 배치했을 가능성이 높습니다). 프로그래밍하기 어려운 그래픽 도구로서의 유틸리티와는 아무 관련이 없습니다. 흐름 시각화에 대한 GIS 사이트 의이 게시물에서 더 많은 동기 찾을 수 있습니다 . 또한 이 사이트에 대한 답변에 파셋과 도트 그림의 예를 제공 합니다.
Andy W

@AndyW, 매우 유용한 의견에 감사드립니다. 다양한 방법을 조사하고 데이터를 실험 해 보겠습니다. 감사.
Eric Fail

이 다이어그램은 훌륭한 아이디어이지만, 소스의 합이 싱크의 합과 같지 않은 것처럼 보입니다 (높이가 크기를 설명한다고 가정)
naught101

아 .. 신경 쓰지 마, 잘못 읽었 어 ... 소스의 밝은 부분은 단지 데이터의 일부가 아닌 레이블 일 뿐이다. 약간 혼란스러운 ..
naught101

답변:


4

@gung에 동의합니다. 게시 한 Sankey 다이어그램은이 기술이 도움이 될 수있는 좋은 예라고 생각합니다. 복잡하지만 상황 (에너지 입력 및 출력)도 복잡하며 여러 범주의 사용에서 입력-출력-동작-새로운 입력으로 경로를 시각화하는 더 좋은 방법을 생각하기는 어렵습니다.

이제 다른 사람이 지적했듯이 게시 한 마멸 예제의 경우 Sankey 다이어그램을 사용하는 것이 도움이되지 않습니다. 대체 시각화에 대한 좋은 권장 사항을 원하면 전체 변수 세트를 게시해야한다고 생각합니다. 사이트와 임상의 사이에 감소 소스의 차이를 단순히 보여주고 싶다면, 청중이 이해하기 쉽고 구현하기 쉬운 소수의 도트 플롯 시리즈가있을 수 있습니다 ( 이 예제를 참조 하면 그룹의 위치 사이트, 그룹 내 요소가 감소의 원인이되고 가로 축은 0-100 %입니다.

Sankey 다이어그램을 사용하고 싶고 다른 고급 언어로 기꺼이 다루고 싶다면 갤러리에 Python 플로팅 패키지 matplotlib에 대한 좋은 예제 (코드 포함) 가 있습니다.


3

필자는 메소드의 부족이 메소드가 중요하지 않거나 유용하지 않다고 암시한다고 생각하지는 않습니다. 결국, 현재 R에 존재하는 모든 방법에 대해 패키지가 없었던 시간이있었습니다.

그러나 필자는 감손과 같은 데이터를 시각화하는 방법에는 여러 가지가 있다고 생각해야합니다. 귀하의 차트를 볼 때 처음으로 생각한 으로 표시 될 수 있다는 것 입니다. 다른 가능성도 존재합니다. Sankey Diagram의 추가 기능은 한 시점에서 특정 원인으로 인해 약간의 마모가 발생 했을 때 , 그리고 나중에 다른 입력 및 출력 사이 의 동일한 원인으로 인해 더 많은 기능이 작동합니다 . 표준 플롯으로 표현하기가 더 복잡합니다 (예를 들어, 페이지 상단에있는 다이어그램은 읽기에 약간의 작업이 필요합니다). 당신이 그것을 가지고있는 것 같지 않기 때문에 Sankey 다이어그램은 예쁘지 만 과잉 것 같습니다.


1
첫 번째 그래픽은 멋진 IMO입니다. 일련의 도트 플롯에서 직관적으로 캡처하기 어려운 세부 사항이 많이 있습니다. 또한 Sankey 다이어그램 시각화하는 좋은 흐름입니다 및에 서로 다른 노드 (사용 된 에너지와 손실 된 에너지로 재 결합).
Andy W

@AndyW, 나는 그 수치를 두 드리려는 것을 의미하지 않습니다. 많은 정보를 담고있는 b / c를 크게 읽는 것은 많은 일입니다. 그것은 당신을 끌어 들이고 잠시 동안 당신을 거기에 붙잡고 있다는 것은 실제 플러스 일 수 있습니다. OP의 데이터는 간단한 도표로 전달할 수있을 정도로 간단합니다.
gung-복직 모니카

좋은 점은 OP의 데이터가 주어진 것보다 더 복잡하지 않으면 가치보다 더 많은 문제 일 것입니다! 그래도 원래 에너지 다이어그램을 일련의 도트 플롯으로 변환하는 것에 대해 생각하고 싶지 않습니다.
Andy W

@ gung, 내 게시물에 회신 주셔서 감사합니다. 나는 방법의 부족이 그 방법이 좋지 않거나 유용하지 않다는 결정적인 신호로 간주되어서는 안되며, Sankey diagrams (SD)에 대해서는 분명히 언급하지 않았다. 내 데이터와 관련하여 다이어그램에서 볼 수있는 것은 내 데이터의 최상위 차원 일뿐입니다 .4 개의 다른 사이트와 7 명의 다른 임상의가 수집 한 데이터가 있으며이 정보를 플롯에 포함하고 싶습니다. 전체 흐름 내에서 세분화합니다. 현재 데이터로 과잉처럼 보일 수 있지만 모든 변수를 포함하면 SD가 유용 할 것이라고 생각합니다.
Eric Fail

복잡성이 더 크면 Sankey 다이어그램이 가장 좋습니다. 위의 링크와 같은 @AndyW의 게시물을 살펴 보는 것도 좋습니다. 그는 관련이있을만한 좋은 답변을 많이 받았습니다. 예를 들어, 그의 이름을 클릭하여 자신의 페이지로 이동 한 다음 데이터 시각화 태그를 클릭하면 그의 게시물을 살펴볼 수 있습니다.
gung-복직 모니카

1

R 코드를 사용하여 데이터에 따라 설정된 화살표 너비와 간단한 레이아웃으로 SVG 파일을 작성하는 것은 어떻습니까? 그런 다음 Inkscape에 넣고 화살표를 구부리고 레이블 등을 마음의 내용에 추가하여 무언가를 아름답게 만듭니다.

명백한 문제 : 데이터가 변경되면 Inkscape에서 모든 prettification을 다시 실행해야합니다 (Inkscape의 예쁜 SVG를 템플릿으로 사용하고 새로운 화살표 너비를 대체 할 수는 있지만).

그러나 솔직히 말해서, 상단에있는 구불 구불 한 구불 구불 한 다색의 혼란이 좋은 Sankey 다이어그램이라면, 나는 전체 배에서 나쁜 것을 보는 것을 싫어합니다. 좋은 그래픽은 필요하지 않습니다].


2
해당 데이터를 시각화하는 더 나은 방법을보고 싶습니다. 그 줄거리에는 많은 정보가 있고 (여러 개의 다른 변수들), 물론 복잡해질 것입니다.
naught101

2
Dan Carr의 마이크로 맵은 전체 그래픽을 요약하는 데 시간이 걸리므로 자세한 로드맵도 있습니다. 둘 다 반드시 나쁜 것은 아닙니다. James Chesire의 블로그 게시물 인 Fast Thinking 및 Slow Thinking Visualization을 참조하십시오 .
Andy W
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.