히스토그램과 산점도는 데이터와 변수 간의 관계를 시각화하는 훌륭한 방법이지만 최근에 어떤 시각화 기술이 누락되었는지 궁금합니다. 가장 많이 사용되지 않는 줄거리 유형은 무엇이라고 생각하십니까?
답변은 :
- 실제로는 일반적으로 사용되지 않습니다.
- 많은 배경 토론없이 이해할 수 있습니다.
- 많은 일반적인 상황에 적용 할 수 있습니다.
- 예제를 만들기 위해 재현 가능한 코드를 포함하십시오 (바람직하게는 R). 연결된 이미지가 좋을 것입니다.
답변
나는 다른 포스터에 정말 동의합니다 : Tufte의 책은 환상 적이고 읽을만한 가치가 있습니다.
먼저, 올해 초 “데이터 찾기”의 ggplot2 및 ggobi에 대한 유용한 자습서를 소개하겠습니다 . 그 외에도 R에서 하나의 시각화와 두 개의 그래픽 패키지 (기본 그래픽, 격자 또는 ggplot만큼 널리 사용되지 않는)를 강조하겠습니다.
히트 맵
다변량 데이터, 특히 시계열 데이터를 처리 할 수있는 시각화가 정말 좋습니다. 히트 맵 이 유용 할 수 있습니다. 정말 깔끔한 하나는 David Smith가 Revolutions 블로그에 소개했습니다 . Hadley가 제공 한 ggplot 코드는 다음과 같습니다.
stock <- "MSFT"
start.date <- "2006-01-12"
end.date <- Sys.Date()
quote <- paste("http://ichart.finance.yahoo.com/table.csv?s=",
stock, "&a=", substr(start.date,6,7),
"&b=", substr(start.date, 9, 10),
"&c=", substr(start.date, 1,4),
"&d=", substr(end.date,6,7),
"&e=", substr(end.date, 9, 10),
"&f=", substr(end.date, 1,4),
"&g=d&ignore=.csv", sep="")
stock.data <- read.csv(quote, as.is=TRUE)
stock.data <- transform(stock.data,
week = as.POSIXlt(Date)$yday %/% 7 + 1,
wday = as.POSIXlt(Date)$wday,
year = as.POSIXlt(Date)$year + 1900)
library(ggplot2)
ggplot(stock.data, aes(week, wday, fill = Adj.Close)) +
geom_tile(colour = "white") +
scale_fill_gradientn(colours = c("#D61818","#FFAE63","#FFFFBD","#B5E384")) +
facet_wrap(~ year, ncol = 1)
어느 쪽이 다음과 같이 보입니다.
RGL : 대화식 3D 그래픽
배우려는 노력의 가치가있는 또 다른 패키지는 대화식 3D 그래픽을 쉽게 만들 수있는 RGL 입니다. 온라인에 대한 많은 예제가 있습니다 (rgl 문서 포함).
R-Wiki에는 rgl을 사용하여 3D 산점도를 그리는 방법에 대한 좋은 예가 있습니다.
고비
알아야 할 또 다른 패키지는 rggobi 입니다. 이 주제에 스프링 책은 훌륭한 많은 문서 / 예는에 포함, 온라인 및 “데이터를 보면” 물론.
답변
나는 도트 플롯을 정말로 좋아 하며 적절한 데이터 문제에 대해 다른 사람들에게 추천 할 때 항상 놀라고 기뻐합니다. 그들은 많이 사용하지 않는 것 같아서 이유를 알 수 없습니다.
다음은 Quick-R의 예입니다.
나는 클리블랜드가 이들의 개발과 공포에 가장 큰 책임을지고 있다고 생각하며, 그의 책 (예 : 결함이있는 데이터가 도트 플롯으로 쉽게 감지 된)의 예가 그들의 사용에 대한 강력한 논증이다. 위의 예는 한 줄에 하나의 점만 넣는 반면 실제 출력은 각 줄에 여러 개의 점이 있으며 어느 쪽이 어느 것인지 설명하는 범례가 있습니다. 예를 들어, 세 가지 다른 시점에 다른 심볼이나 색상을 사용할 수 있으며, 따라서 다른 카테고리에서 쉽게 시간 패턴을 얻을 수 있습니다.
다음 예제 (모든 일을 Excel에서 완료했습니다!)에서 레이블 교환으로 인해 어떤 범주가 발생했는지 명확하게 확인할 수 있습니다.
답변
극좌표를 사용하는 플롯은 확실히 사용되지 않습니다. 일부는 정당한 이유가 있습니다. 나는 그들의 사용을 정당화하는 상황은 일반적이지 않다고 생각한다. 또한 이러한 상황이 발생하면 극좌표는 선형 도표로는 불가능한 데이터 패턴을 나타낼 수 있다고 생각합니다.
때로는 데이터가 선형이 아니라 본질적으로 극좌표 이기 때문에 데이터가 주기적이거나 (24 일 동안 24 시간 동안 여러 시간 동안 시간을 나타내는 x 좌표) 데이터가 이전에 극좌표 형상 공간에 매핑 되었기 때문이라고 생각합니다 .
다음은 예입니다. 이 그림은 시간별 웹 사이트의 평균 트래픽 양을 보여줍니다. 오후 10시와 오전 1시에 두 개의 급등에 주목하십시오. 사이트의 네트워크 엔지니어에게는 중요한 역할을합니다. 또한 서로 가까이 ( 두 시간 간격으로) 발생한다는 점도 중요합니다 . 그러나 기존 좌표계에서 동일한 데이터를 플로팅하면이 패턴이 완전히 숨겨져 선형으로 표시됩니다.이 두 스파이크는 20 시간 간격으로 연속 날짜에 2 시간 간격으로 표시됩니다. 위의 극좌표 차트는이 내용을 포용적이고 직관적 인 방식으로 보여줍니다 (전설은 필요하지 않음).
R을 사용하여 이와 같은 플롯을 만드는 방법에는 두 가지가 있습니다 (알고 있습니다). 하나는 기본 또는 그리드 그래픽 시스템에서 자신의 기능을 코딩하는 것입니다. 더 쉬운 다른 방법은 순환 패키지 를 사용하는 것 입니다. 사용할 함수는 ‘ rose.diag ‘입니다.
data = c(35, 78, 34, 25, 21, 17, 22, 19, 25, 18, 25, 21, 16, 20, 26,
19, 24, 18, 23, 25, 24, 25, 71, 27)
three_palettes = c(brewer.pal(12, "Set3"), brewer.pal(8, "Accent"),
brewer.pal(9, "Set1"))
rose.diag(data, bins=24, main="Daily Site Traffic by Hour", col=three_palettes)
답변
산점도에 점이 너무 많아 완전히 엉망이되면 부드러운 산점도를 사용해보십시오. 예를 들면 다음과 같습니다.
library(mlbench) ## this package has a smiley function
n <- 1e5 ## number of points
p <- mlbench.smiley(n,sd1 = 0.4, sd2 = 0.4) ## make a smiley :-)
x <- p$x[,1]; y <- p$x[,2]
par(mfrow = c(1,2)) ## plot side by side
plot(x,y) ## left plot, regular scatter plot
smoothScatter(x,y) ## right plot, smoothed scatter plot
hexbin
(@Dirk Eddelbuettel 제안) 패키지는 동일한 목적으로 사용되지만, smoothScatter()
그것이 속한 이점 갖는 graphics
패키지, 따라서 표준 R 설치 부분이다.
답변
스파크 라인 및 기타 Tufte 아이디어와 관련 하여 CRAN 의 YaleToolkit 패키지 는 기능 및을 제공합니다 . sparkline
sparklines
대용량 데이터 세트에 유용한 또 다른 패키지는 데이터를 버킷에 영리하게 ‘고정’하여 순진 산점도에 비해 너무 큰 데이터 세트를 처리하므로 헥사 빈입니다.
답변
바이올린 플롯 (상자 플롯과 커널 밀도를 결합한)은 비교적 이국적이고 매우 시원합니다. R 의 vioplot 패키지를 사용하면 쉽게 만들 수 있습니다.
다음은 예제입니다 (wikipedia 링크도 예제를 보여줍니다).
답변
방금 검토 한 또 다른 멋진 시계열 시각화 는 “범프 차트”입니다 ( 이 게시물의 “Learning R”블로그에 나와 있음 ). 시간이 지남에 따라 위치 변화를 시각화하는 데 매우 유용합니다.
http://learnr.wordpress.com/ 에서 작성하는 방법에 대해 읽을 수 있지만 다음과 같이 보입니다.