2012-07-02 5 views
2

저는 삼각형 중 두 개 사이에 채우기를 작성하려고합니다. 예를 들어 빨간색과 녹색 삼각형 사이에 빨간색 채우기가 있습니다. 아무도 이것을 성취 할 방법을 알고 있습니까? 나는 그들이 CSS,하지 D3를 사용하여 채우기를 만들 생각하지만, 나는 d3.js 레이더 그래프 - 라인 사이에 채우기

enter image description here

는 방사형 차트를 사용하여 mbostock의 답을 위의 문제를 해결 ..., 내가 비슷한 무언가를 생각 레이더 그래프의 또 다른 예를 보았다 ...

최종 결과 enter image description here

+0

안녕하세요, 마지막 차트를 만드는 데 사용한 코드를 공유 할 수 있습니까? 나는 비슷한 것을 만들려고 노력하고 있으며, 같은 결과를 얻는데 몇 가지 어려움을 겪고 있습니다. 귀하의 도움을 주시면 감사하겠습니다! – credmp

답변

7

이 경우 사용자 지정 경로를 구현할 필요가 없습니다. d3.svg.area.radial 경로 생성기를 사용할 수 있습니다. 다음은주기적인 데이터를 플롯하는 데 사용할 수있는 누적 방사형 영역 차트의 예

구현은 규모가 될 것 레이더 차트를 제외하고, 레이더 차트에 상당히 유사하다 각 각도마다 다릅니다.

+0

이것은 큰 도움이되었지만 한 부분에 붙어 있습니다. 업데이트 된 레이더 차트를 첨부했습니다. 내 문제는 개요가 있지만 채우기가없는 하나의 레이어를 만들려고한다는 것입니다. 대신, 어떻게 든 외곽선이있는 두 개의 레이어를 얻습니다. 또한이 작업을 수행하려는 코드를 추가했습니다. 고마워. – Apollo

+0

- 해결 됨. 방사형 차트가 작동했습니다. – Apollo

+0

감사합니다. 마이크. [링크 된 코드] (http://bl.ocks.org/3048740)에서 'line'선언은 사용되지 않아 제거 될 수 있으므로 샘플을 더 간단하게 만들 수 있습니다. –

0

이를 위해, 사용자 정의 경로 생성기를 사용하여 하나 개의 경로에 두 개의 삼각형을 병합해야합니다. 그런 다음 경로를 닫고 채울 수 있습니다. 삼각형의 색상을 다르게하려면 각 색상을 따로 그려야합니다.

큰 속임수를 채우고 간단히 채우고 그 위에 흰색으로 채워진 작은 삼각형을 넣으려고 할 수 있습니다. 그런 다음 그리드 선을 그립니다. 그러나 삼각형이 겹치지 않는 경우에만 작동합니다.

+0

맞춤 경로 생성기를 사용하는 방법에 대해 자세히 설명해 주시겠습니까? thanks – Apollo

+0

[wiki] (https://github.com/mbostock/d3/wiki/SVG-Shapes) ("경로 데이터 생성기"섹션)에서 경로 생성기에 대한 자세한 정보를 확인할 수 있습니다. 구현을 위해서는 소스 코드를 살펴보십시오. –

+0

몇 가지 샘플 코드를 제공해 주시겠습니까? – Apollo

0

Lars가 언급했듯이 SVG Path element을 만들고 싶습니다.

경로는 요소의 d 속성의 일련의 명령으로 정의됩니다. 두 삼각형 중 하나의 꼭지점으로 절대적으로 이동 ("M")하기를 원합니다. 그런 다음 lineto (절대적으로 "L"또는 상대적으로 "l")를 사용하여 첫 번째 삼각형의 각 구석으로 이동합니다. 그런 다음 절대적으로 다른 삼각형으로 이동하고 반복하십시오. 끝에있는 "z"가 경로를 닫습니다. 경로의 채우기를 원하는 색상으로 설정하십시오.

는 여기 단일 삼각형 위의 링크에서 경로의 예 : 당신은 행동이 기술을보고 싶은 경우

<path d="M 100 100 L 300 100 L 200 300 z"/> 

mbostock는 http://square.github.com/crossfilter/에서 막대 차트에 대한 경로에 사용합니다.

+0

나는 두 사람 사이에 채우기를 만드는 방법에 대해 아직도 조금 혼란 스럽다 ... 좀 더 설명을 해줄 수 있겠 니? 감사. – Apollo

+0

닫힌 패스 드로잉 메서드를 사용하고 CSS에 채우기를 적용합니다. –