가장 많이 사용되지 않는 데이터 시각화
히스토그램과 산점도는 데이터와 변수 간의 관계를 시각화하는 훌륭한 방법이지만, 최근에는 어떤 시각화 기술이 부족한지 궁금합니다.가장 잘 사용되지 않는 플롯 유형은 무엇이라고 생각하십니까?
답은 다음과 같습니다.
- 실제로는 그다지 일반적으로 사용되지 않습니다.
- 많은 배경 논의 없이도 이해할 수 있습니다.
- 많은 일반적인 상황에 적용할 수 있습니다.
- 예제를 생성하기 위해 재현 가능한 코드를 포함합니다(권장 사항은 R).링크된 이미지가 좋을 것 같습니다.
저는 다른 포스터들에 정말 동의합니다.터프의 책들은 환상적이고 읽을 가치가 충분히 있습니다.
먼저 올해 초 "Looking at Data"의 ggplot2와 ggobi에 대한 매우 멋진 튜토리얼을 소개하겠습니다.그 외에 R의 시각화 한 개와 기본 그래픽, 격자 또는 ggplot만큼 널리 사용되지 않는 두 개의 그래픽 패키지를 강조합니다.
열 지도
저는 다변량 데이터, 특히 시계열 데이터를 처리할 수 있는 시각화를 정말 좋아합니다.열 지도는 이에 유용할 수 있습니다.정말 깔끔한 것은 데이비드 스미스가 레볼루션 블로그에 올린 것입니다.해들리가 제공하는 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입니다.이 주제에 대한 Springer 책과 "데이터 보기" 과정을 포함한 많은 훌륭한 문서/예문이 온라인에 있습니다.
저는 점도표를 정말 좋아하고 적절한 데이터 문제로 다른 사람들에게 점도표를 추천할 때 그들은 항상 놀라고 기뻐합니다.그들은 별로 쓸모가 없는 것 같고, 저는 그 이유를 알 수가 없어요.
Quick-R: 의 예입니다.
나는 클리블랜드가 이것들의 개발과 공표에 가장 큰 책임이 있다고 생각하며, 그의 책에서 (점도표로 결함이 있는 데이터를 쉽게 발견한) 예는 그것들의 사용에 대한 강력한 주장입니다.위의 예에서는 한 줄에 한 개의 점만 넣지만 실제 검정력은 각 줄에 여러 개의 점이 있고 어느 것이 어느 것인지 설명하는 범례가 있습니다.예를 들어, 세 개의 다른 시점에 다른 기호나 색상을 사용하여 다른 범주의 시간 패턴을 쉽게 감지할 수 있습니다.
다음 예제(모든 항목 중 Excel에서 수행됨!)에서는 레이블 스왑으로 인해 발생했을 수 있는 범주를 명확하게 확인할 수 있습니다.
극좌표를 사용하는 그림은 확실히 충분히 사용되지 않습니다. 어떤 사람들은 그럴만한 이유가 있다고 말할 것입니다.저는 그것들의 사용을 정당화하는 상황들이 흔하지 않다고 생각합니다; 또한 저는 그러한 상황들이 발생할 때, 극지방 그림이 선형 그림이 할 수 없는 데이터의 패턴을 드러낼 수 있다고 생각합니다.
이는 데이터가 선형이 아니라 본질적으로 극성을 띠는 경우가 있기 때문이라고 생각합니다. 예를 들어, 주기적이거나(24시간 동안 여러 날에 걸쳐 시간을 나타내는 x 좌표) 데이터가 이전에 극성 형상 공간에 매핑된 경우가 있습니다.
여기 예가 있어요.이 플롯은 웹 사이트의 시간별 평균 트래픽 볼륨을 보여줍니다.오후 10시와 새벽 1시에 두 개의 스파이크에 주목하세요.사이트의 네트워크 엔지니어에게 이러한 작업은 중요합니다. 두 시간 간격으로 서로 가까이에서 발생한다는 점도 중요합니다.하지만 전통적인 좌표계에 동일한 데이터를 표시하면 이 패턴은 완전히 숨겨집니다. 선형으로 표시됩니다. 이 두 스파이크는 20시간 차이가 납니다. 비록 연속적으로 2시간 차이가 나긴 하지만 말이죠.위의 극성 차트는 이를 간결하고 직관적인 방식으로 보여줍니다(전설은 필요하지 않습니다).
R을 사용하여 이와 같은 그림을 만드는 방법은 두 가지가 있습니다(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(@Dirk Eddelbuettel) 패키지는smoothScatter()
그것은 그것에 속한다는 장점이 있습니다.graphics
패키지이며, 따라서 표준 R 설치의 일부입니다.
스파크라인 및 기타 Tuffte 아이디어와 관련하여, CRAN의 Yale Toolkit 패키지는 기능을 제공합니다.sparkline
그리고.sparklines
.
대규모 데이터 세트에 유용한 또 다른 패키지는 Hexbin입니다. Hexbin은 데이터를 버킷으로 교묘하게 '바인'하여 단순한 산점도에 비해 너무 클 수 있는 데이터 세트를 처리하기 때문입니다.
바이올린 플롯(상자 플롯과 커널 밀도를 결합한)은 상대적으로 이국적이고 꽤 멋집니다.R의 바이오봇 패키지는 당신이 그것들을 꽤 쉽게 만들 수 있게 해줍니다.
다음은 예제입니다(위키백과 링크에도 예제가 표시됩니다).
제가 방금 검토한 또 다른 멋진 시계열 시각화는 "범프 차트"입니다("러닝 R" 블로그의 이 게시물에 나와 있음).이것은 시간에 따른 위치 변화를 시각화하는 데 매우 유용합니다.
http://learnr.wordpress.com/, 에서 생성 방법에 대해 읽을 수 있지만 다음과 같은 결과를 얻을 수 있습니다.
저는 또한 작은 배수 비교를 훨씬 쉽게 할 수 있게 해주는 Tuffte의 수정된 상자 그림을 좋아합니다. 왜냐하면 그것들은 수평으로 매우 "얇고" 여분의 잉크로 플롯을 혼란스럽게 하지 않기 때문입니다.그러나 상당히 많은 범주에서 가장 잘 작동합니다. 그림에 몇 개만 있는 경우 일반(투키) 상자 그림의 무게가 조금 더 크기 때문에 더 잘 보입니다.
library(lattice)
library(taRifx)
compareplot(~weight | Diet * Time * Chick,
data.frame=cw ,
main = "Chick Weights",
box.show.mean=FALSE,
box.show.whiskers=FALSE,
box.show.box=FALSE
)
이 질문에서는 다른 종류의 Tuffte 상자 그림을 포함하여 이러한 항목을 만드는 다른 방법에 대해 설명합니다.
우리는 귀엽고 (역사적으로) 중요한 줄기와 잎의 줄거리에 대해 잊어서는 안 됩니다.데이터 밀도와 모양에 대한 직접적인 수치 개요를 얻을 수 있습니다(물론 데이터 세트가 약 200점보다 크지 않은 경우). R 서, 함은stem
줄기-잎 디스플레이(작업 영역)를 생성합니다.사용하는 것을 선호합니다.gstem
패키지 fmsb에서 그래픽 장치에 직접 그릴 수 있는 기능입니다.아래는 스템별 디스플레이의 비버 체온 분산(데이터가 기본 데이터 집합에 있어야 함)입니다.
require(fmsb)
gstem(beaver1$temp)
여러 시계열을 한 번에 시각화하는 Horizon 그래프(pdf).
분할표를 시각화하기 위한 연관도 및 모자이크 그림(vcd 패키지 참조)
터프테의 훌륭한 작품 외에도 윌리엄 S의 책을 추천합니다.클리블랜드:데이터 시각화 및 데이터 그래프 작성 요소그것들은 훌륭할 뿐만 아니라 모두 R에서 수행되었으며 코드는 공개적으로 사용 가능하다고 생각합니다.
박스 플롯!R 도움말의 예:
boxplot(count ~ spray, data = InsectSprays, col = "lightgray")
데이터를 간단히 보거나 분포를 비교할 수 있는 가장 편리한 방법이라고 생각합니다.더 복잡한 분포의 경우 다음과 같은 확장이 있습니다.vioplot
.
모자이크 그림은 언급된 네 가지 기준을 모두 충족하는 것 같습니다.r의 모자이크 그림 아래에 예제가 있습니다.
에드워드 터프의 작품, 특히 이 책을 확인해 보세요.
당신은 또한 그의 여행 프레젠테이션을 받아볼 수 있습니다.그것은 꽤 좋고 그의 책 네 권을 포함하고 있습니다.(저는 그의 출판사 주식을 가지고 있지 않다고 맹세합니다!)
그나저나, 나는 그의 스파크라인 데이터 시각화 기술을 좋아합니다.놀랐지!구글은 이미 그것을 작성했고 구글 코드에 그것을 참조하십시오.
요약 그림?이 페이지에 언급된 것과 같이:
언급URL : https://stackoverflow.com/questions/2076370/most-underused-data-visualization
'programing' 카테고리의 다른 글
다른 클라우드 함수에서 클라우드 함수 호출 (0) | 2023.06.21 |
---|---|
재할당 사용과 무료 사용의 차이점 -> malloc 함수 (0) | 2023.06.11 |
파이썬에서 16진수를 10진수로 변환하려면 어떻게 해야 합니까? (0) | 2023.06.11 |
인터페이스에 대한 검사 인스턴스 (0) | 2023.06.11 |
pip을 사용하여 SciPy 및 NumPy 설치 (0) | 2023.06.11 |