programing

가장 많이 사용되지 않는 데이터 시각화

lastmoon 2023. 6. 11. 11:15
반응형

가장 많이 사용되지 않는 데이터 시각화

히스토그램과 산점도는 데이터와 변수 간의 관계를 시각화하는 훌륭한 방법이지만, 최근에는 어떤 시각화 기술이 부족한지 궁금합니다.가장 잘 사용되지 않는 플롯 유형은 무엇이라고 생각하십니까?

답은 다음과 같습니다.

  1. 실제로는 그다지 일반적으로 사용되지 않습니다.
  2. 많은 배경 논의 없이도 이해할 수 있습니다.
  3. 많은 일반적인 상황에 적용할 수 있습니다.
  4. 예제를 생성하기 위해 재현 가능한 코드를 포함합니다(권장 사항은 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)

이는 결국 다음과 같이 나타납니다.

alt 텍스트

RGL: 대화형 3D 그래픽

학습할 가치가 있는 또 다른 패키지는 대화형 3D 그래픽을 쉽게 생성할 수 있는 기능을 제공하는 RGL입니다.온라인에는 이에 대한 많은 예가 있습니다(rgl 설명서 포함).

R-Wiki에는 rgl을 사용하여 3D 산점도를 그리는 방법에 대한 좋은 예가 있습니다.

지고비

알 만한 또 다른 패키지는 rggobi입니다.주제에 대한 Springer 책과 "데이터 보기" 과정을 포함한 많은 훌륭한 문서/예문이 온라인에 있습니다.

저는 점도표를 정말 좋아하고 적절한 데이터 문제로 다른 사람들에게 점도표를 추천할 때 그들은 항상 놀라고 기뻐합니다.그들은 별로 쓸모가 없는 것 같고, 저는 그 이유를 알 수가 없어요.

Quick-R: 의 예입니다.자동차 데이터의 점도표

나는 클리블랜드가 이것들의 개발과 공표에 가장 큰 책임이 있다고 생각하며, 그의 책에서 (점도표로 결함이 있는 데이터를 쉽게 발견한) 예는 그것들의 사용에 대한 강력한 주장입니다.위의 예에서는 한 줄에 한 개의 점만 넣지만 실제 검정력은 각 줄에 여러 개의 점이 있고 어느 것이 어느 것인지 설명하는 범례가 있습니다.예를 들어, 세 개의 다른 시점에 다른 기호나 색상을 사용하여 다른 범주의 시간 패턴을 쉽게 감지할 수 있습니다.

다음 예제(모든 항목 중 Excel에서 수행됨!)에서는 레이블 스왑으로 인해 발생했을 수 있는 범주를 명확하게 확인할 수 있습니다.

두 그룹이 있는 점도표

극좌표를 사용하는 그림은 확실히 충분히 사용되지 않습니다. 어떤 사람들은 그럴만한 이유가 있다고 말할 것입니다.저는 그것들의 사용을 정당화하는 상황들이 흔하지 않다고 생각합니다; 또한 저는 그러한 상황들이 발생할 때, 극지방 그림이 선형 그림이 할 수 없는 데이터의 패턴을 드러낼 수 있다고 생각합니다.

이는 데이터가 선형이 아니라 본질적으로 극성을 띠는 경우가 있기 때문이라고 생각합니다. 예를 들어, 주기적이거나(24시간 동안 여러 날에 걸쳐 시간을 나타내는 x 좌표) 데이터가 이전에 극성 형상 공간에 매핑된 경우가 있습니다.

여기 예가 있어요.이 플롯은 웹 사이트의 시간별 평균 트래픽 볼륨을 보여줍니다.오후 10시와 새벽 1시에 두 개의 스파이크에 주목하세요.사이트의 네트워크 엔지니어에게 이러한 작업은 중요합니다. 두 시간 간격으로 서로 가까이에서 발생한다는 점도 중요합니다.하지만 전통적인 좌표계에 동일한 데이터를 표시하면 이 패턴은 완전히 숨겨집니다. 선형으로 표시됩니다. 이 두 스파이크는 20시간 차이가 납니다. 비록 연속적으로 2시간 차이가 나긴 하지만 말이죠.위의 극성 차트는 이를 간결하고 직관적인 방식으로 보여줍니다(전설은 필요하지 않습니다).

사이트 트래픽을 보여주는 극성 차트(1시간 및 22시간 피크 포함)

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 아이디어와 관련하여, CRANYale Toolkit 패키지는 기능을 제공합니다.sparkline그리고.sparklines.

대규모 데이터 세트에 유용한 또 다른 패키지는 Hexbin입니다. Hexbin은 데이터를 버킷으로 교묘하게 '바인'하여 단순한 산점도에 비해 너무 클 수 있는 데이터 세트를 처리하기 때문입니다.

바이올린 플롯(상자 플롯과 커널 밀도를 결합한)은 상대적으로 이국적이고 꽤 멋집니다.R의 바이오봇 패키지는 당신이 그것들을 꽤 쉽게 만들 수 있게 해줍니다.

다음은 예제입니다(위키백과 링크에도 예제가 표시됩니다).

여기에 이미지 설명 입력

제가 방금 검토한 또 다른 멋진 시계열 시각화는 "범프 차트"입니다("러닝 R" 블로그의 게시물에 나와 있음).이것은 시간에 따른 위치 변화를 시각화하는 데 매우 유용합니다.

http://learnr.wordpress.com/, 에서 생성 방법에 대해 읽을 수 있지만 다음과 같은 결과를 얻을 수 있습니다.

alt 텍스트

저는 또한 작은 배수 비교를 훨씬 쉽게 할 수 있게 해주는 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).

다변량 분석을 위해 병렬 좌표 그림(pdf).

분할표를 시각화하기 위한 연관 모자이크 그림(vcd 패키지 참조)

터프테의 훌륭한 작품 외에도 윌리엄 S의 책을 추천합니다.클리블랜드:데이터 시각화데이터 그래프 작성 요소그것들은 훌륭할 뿐만 아니라 모두 R에서 수행되었으며 코드는 공개적으로 사용 가능하다고 생각합니다.

박스 플롯!R 도움말의 예:

boxplot(count ~ spray, data = InsectSprays, col = "lightgray")

데이터를 간단히 보거나 분포를 비교할 수 있는 가장 편리한 방법이라고 생각합니다.더 복잡한 분포의 경우 다음과 같은 확장이 있습니다.vioplot.

모자이크 그림은 언급된 네 가지 기준을 모두 충족하는 것 같습니다.r의 모자이크 그림 아래에 예제가 있습니다.

에드워드 터프의 작품, 특히 이 책을 확인해 보세요.

당신은 또한 그의 여행 프레젠테이션을 받아볼 수 있습니다.그것은 꽤 좋고 그의 책 네 권을 포함하고 있습니다.(저는 그의 출판사 주식을 가지고 있지 않다고 맹세합니다!)

그나저나, 나는 그의 스파크라인 데이터 시각화 기술을 좋아합니다.놀랐지!구글은 이미 그것을 작성했고 구글 코드에 그것을 참조하십시오.

요약 그림?이 페이지에 언급된 것과 같이:

요약 통계량 및 불확실성 시각화

언급URL : https://stackoverflow.com/questions/2076370/most-underused-data-visualization

반응형