필자는 데이터의 여러 부분 집합을 나타내는 여러 분산 형 플롯을 사용합니다. 나는 시각적으로 데이터의 부분 집합의 겹침/부족을 시각적으로 표현하는 방법을 찾고 싶다. R 또는 Matlab에서 데이터의 평균 및 분산을 고려한 타원형으로 각 데이터 집합을 변환하는 가장 좋은 방법은 무엇입니까? 나는 본질적으로 3 개의 분리 된 산점도를 벤 다이어그램으로 바꾸고 싶다. A는 @hrbrmstr 의해 연결된 Q &에 제시된 해결책에 추가Venn 도표 방식으로 산점도 데이터를 나타 냅니까?
답변
, 그것의 litteral 표현 볼록 포를 사용하여 달성 될 수
library(scales) #Only for the transparency effect
data(iris)
plot(iris$Sepal.Length, iris$Sepal.Width, type="n")
a <- split(iris, iris$Species) #Separate the dataset by ID (here species)
for(i in seq_along(a)){
h <- chull(a[[i]]) #Compute convex hull for each group
h <- c(h, h[1])
polygon(a[[i]][h,], col=alpha(i,.5), border=NA) #Plot it
}
points(iris$Sepal.Length, iris$Sepal.Width, col=iris$Species, pch=19) #Add data points
데이터 집합으로이 작업을 시도하면 "In data.matrix (x) : NAs as coercion"오류가 발생하고 결과 컨벡스 헐이 보이지 않게됩니다. 어떤 아이디어? – user1566200
@ user1566200 데이터를 보지 않고서도이 문제의 원인을 정확히 알 수 없습니다. 파란 색에서 데이터 유형 문제라고 가정합니다. 숫자 여야하는 모든 것이 실제로는 숫자이며 문자 또는 요소가 아닌지 확인하십시오. – plannapus
고마워, 그게 그거야. 그 안에 끈이 있었다. 이것은 아름답게 보입니다. points()를 사용하여 색상 범례를 추가하는 방법이 있습니까? 도움이되는 곳 어디에서도 보지 마세요. – user1566200
당신은 ellipse
함수를 사용할 수도 타원 패키지에서 타원의 점을 계산하려면 각 데이터 그룹에 대해 타원 함수에 평균, 표준 편차 및 상관 관계를 부여한 다음 결과를 lines
함수에 전달하여 산점도에 추가합니다. 그룹이 적당하다면 잘 작동하지만, 그룹에 강한 왜곡이 있으면 타원이 잘 맞지 않습니다.
다른 옵션은 chull
함수를 사용하여 그룹의 모든 점을 포함하는 복잡한 선체를 계산하는 것입니다. 이것을 사용하여 모든 점을 포함하는 폴리곤을 그릴 수 있습니다 (일부는 폴리곤을 만질 것입니다). 다각형보다 더 부드러운 것을 원하면 lines
또는 polygon
이 아닌 xspline
함수를 사용하여 도면을 작성하십시오. 다음은 몇 가지 예제 코드입니다 :
with(iris, plot(Petal.Width, Petal.Length, col=c('red','green','blue')[Species]))
tmp <- chull(iris[ iris$Species=='setosa', c('Petal.Width','Petal.Length')])
xspline(iris[ iris$Species=='setosa', c('Petal.Width','Petal.Length')][tmp,],
border='red',open=FALSE, shape= -0.75)
tmp <- chull(iris[ iris$Species=='versicolor', c('Petal.Width','Petal.Length')])
xspline(iris[ iris$Species=='versicolor', c('Petal.Width','Petal.Length')][tmp,],
border='green',open=FALSE, shape= -0.75)
tmp <- chull(iris[ iris$Species=='virginica', c('Petal.Width','Petal.Length')])
xspline(iris[ iris$Species=='virginica', c('Petal.Width','Petal.Length')][tmp,],
border='blue',open=FALSE, shape= -0.75)
library(ellipse)
with(iris, plot(Petal.Width, Petal.Length, col=c('red','green','blue')[Species]))
polygon(ellipse(
var(iris[ iris$Species=='setosa', c('Petal.Width','Petal.Length') ]),
centre=colMeans(iris[ iris$Species=='setosa', c('Petal.Width','Petal.Length') ]),
t=3),
border='red')
polygon(ellipse(
var(iris[ iris$Species=='versicolor', c('Petal.Width','Petal.Length') ]),
centre=colMeans(iris[ iris$Species=='versicolor', c('Petal.Width','Petal.Length') ]),
t=3),
border='green')
polygon(ellipse(
var(iris[ iris$Species=='virginica', c('Petal.Width','Petal.Length') ]),
centre=colMeans(iris[ iris$Species=='virginica', c('Petal.Width','Petal.Length') ]),
t=3),
border='blue')
- 1. FOO는 무엇을 나타 냅니까?
- 2. 코드에서 매듭을 나타 냅니까?
- 3. $ %, 2f는 무엇을 나타 냅니까?
- 4. logcat은 오류를 나타 냅니까?
- 5. 무엇이 오버플로를 나타 냅니까?
- 6. sprintf는 무엇을 나타 냅니까?
- 7. 신경망에서 노드를 나타 냅니까?
- 8. nm은 무엇을 나타 냅니까?
- 9. 이것은 java에서 무엇을 나타 냅니까?
- 10. 이 출력은 무엇을 나타 냅니까?
- 11. System.currentTimeMillis는 UTC 시간을 나타 냅니까?
- 12. setf의 f는 무엇을 나타 냅니까?
- 13. css - a.extra는 무엇을 나타 냅니까?
- 14. 은 JSON에서 학생들을 나타 냅니까?
- 15. `hl`은 무엇을 나타 냅니까?
- 16. "sk"는 무엇을 나타 냅니까?
- 17. CouchDB에서 'this'는 무엇을 나타 냅니까?
- 18. /;/및/^ + /는 무엇을 나타 냅니까?
- 19. Java의 MyClass.class는 무엇을 나타 냅니까?
- 20. -1은 ASCII로 무엇을 나타 냅니까?
- 21. MR 버전은 무엇을 나타 냅니까?
- 22. Fiddler의 SOAPAction은 무엇을 나타 냅니까?
- 23. raw.githubusercontent.com URL은 무엇을 나타 냅니까?
- 24. 블록이 정확히 무엇을 나타 냅니까?
- 25. 컨텍스트는 정확히 무엇을 나타 냅니까?
- 26. Android : PackageStats.codeSize는 무엇을 나타 냅니까?
- 27. cURL의 'c'는 무엇을 나타 냅니까?
- 28. SQL Server에서 트리를 나타 냅니까?
- 29. WPFToolkit.DLL은 WPF 앱을 나타 냅니까?
- 30. 트리플 중괄호는 무엇을 나타 냅니까?
다른 하위 집합에서 오는 도트의 색상은 어떻습니까? 줄임표를 추가하는 것은 물론 할 수 있지만, 다른 색상은 쉽게 죽습니다. –
This : http://stats.stackexchange.com/questions/30788/whats-a-good-way-to-use-r-to-make-a-scatterplot-that-separates-the-data-by-trea 당신이 찾고있는 것일 수도 있습니다 – hrbrmstr
예, 완벽합니다! – user1566200