문제

정사각형의 크기 (및 선택적으로 색상)에 따라 값의 크기를 나타내는 다이어그램을 만들기 위해 Python을 사용하는 데 관심이 있습니다. 기본적으로 저는 좋은 오래된 프로그램 windirstat 는 하드 드라이브를 사용합니다 (기본적으로 하드 드라이브를 나타내는 큰 사각형을 만든 다음 다른 프로그램을 나타내는 내부 영역을 구성하는 작은 사각형을 만들고, 사각형이 클수록 파일이 커지고, 색상은 파일 유형을 나타냅니다). 나는 matplotlib에 상당히 익숙하며 이것으로 이와 같은 일을 할 수 없다고 생각합니다. 도움이 될 다른 파이썬 패키지가 있습니까? 그렇지 않은 경우 더 낮은 수준에 대한 제안이 있습니까? 프로그래밍 방식으로 상자를 그리는 방법을 찾을 수 있다면 수동으로 할 수 있다고 생각합니다 (형식에 대해서는별로 신경 쓰지 않지만 SVG와 PNG를 내보내는 옵션이 좋을 것입니다).

궁극적으로, windirstat와 같이 상호 작용하는 것이 좋을 것입니다. 특정 사각형 위로 마우스를 가져 가면 더 많은 정보를 얻을 수 있고, 클릭하면 들어가서 특정 사각형의 구성. 나는 GUI 용 wxpython에만 익숙하며 이와 같은 용도로 사용할 수 있는지 확실하지 않습니다. 지금은 출력하는 것만으로도 만족합니다.

감사합니다! 알렉스

편집 : 감사합니다. 두 답변 모두 많은 도움이되었습니다.

도움이 되었습니까?

해결책

트리 매핑 알고리즘을 찾고 있습니다. 일단 구현되면 출력 (사각형이어야 함)을 계층화 된 직사각형을 그릴 수있는 모든 플로팅 명령으로 변환 할 수 있습니다.

수정 :

추가 링크 및 정보 :

논문을 읽는 데 신경 쓰지 않는다면 브라우저 기반 d3 라이브러리가 'squarified '트리 맵 ( js 구현 ). 그들은 Bruls, Huizing 및 van Wijk . (이것은 위키 백과 기사의 인용 3이기도합니다)

링크 된 Wikipedia 기사에 나열된 알고리즘을 검색하겠습니다. 예를 들어, "혼합 트리 맵"에 대한 알고리즘을 설명하는 문서에 링크됩니다. . 이 논문의 끝에는 직사각형이 아닌 모양으로의 변형을 설명하는 흥미로운 부분도 포함되어 있습니다.

Squarified는 확실히 주변에서 가장 일반적인 다양성으로 보입니다. 위의 링크는 솔루션을 향해 작업하거나 d3 구현을 직접 포팅하기에 충분한 정보를 제공합니다. 그러나 d3의 모델 (jQuery의 선언적 형식과 유사 함)의 비용은 다소 높을 수 있습니다. 하지만 언뜻보기에는 구현이 비교적 간단 해 보입니다.

다른 팁

Squaremap 이이를 수행합니다.나는 그것을 사용하지 않았고 ( RunSnakeRun 에서만 알고 있음) 설명서가 심각하게 부족합니다.,하지만 작동하는 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top