D3으로 산점도를 만들었습니다. 줄거리에서 가장 인구가 많은 지역을 어떻게 식별하고 타원으로 둘러 쌀 수 있습니까? 예를 들어, 그래프의 오른쪽 위 모서리에는 2 개의 채워진 지점이 있습니다. 그것을 할 수있는 함수가 있습니까? 그렇지 않다면 나는 두 가지를 제안 해 주셔서 감사합니다 : 식별하고, 표시하거나, 표시 할 수있는 방법을 제시하십시오.D3 : 분산 형 플롯의 가장 인구가 많은 영역
Scater plot http://tetet.net/clusterLab/scatter.png
var width = 300,
height = 200;
var x = d3.scale.linear().range([0, width]),
y = d3.scale.linear().range([height, 0]);
var svg = d3.select("body")
.append("svg")
.attr("width", width)
.attr("height", height);
d3.tsv("data.tsv", function(error, data) {
if (error) console.warn(error);
x.domain(d3.extent(data, function(q) {return q.xCoord;}));
y.domain(d3.extent(data, function(q) {return q.yCoord;}));
svg.selectAll("circle")
.data(data)
.enter().append("circle")
.attr("r", 5)
.attr("cx", function(d) { return x(d.xCoord); })
.attr("cy", function(d) { return y(d.yCoord); })
});
데이터
xCoord yCoord
0 0
5 3
2 1
4 7
7 4
5 2
9 9
3 4
1 6
5 4
8.1 6.2
8.4 6.6
8 6
8 7
7 8
6.8 8.3
6.4 8.4
6.2 8.3
각 클러스터에 많은 포인트가없는 경우 타원에 대해 간단하게 생각할 수 있습니다. 클러스터에서 모든 포인트 쌍을 통해 서로 멀리 떨어진 한 쌍의 점을 찾습니다. 이 두 점 사이의 선을 따라 초점을 가진 타원에 대한 수식을 만듭니다. 예 : [이러한 답변을 사용하여 (http://math.stackexchange.com/questions/426150/what-is-the-general-equation-of-the-ellipse-that-is-not-in-the-origin-and- 회전). 타원에 클러스터의 모든 점이 포함되도록 매개 변수를 조정하지만 좁게 만들 수 없습니다 (두 점을 모두 포함 할만큼 큰 원으로 시작). – Mars