가장 많이 사용되지 않는 데이터 시각화 [닫기]
히스토그램과 산점도는 데이터와 변수 사이의 관계를 시각화하는 훌륭한 방법이지만 최근에 어떤 시각화 기술이 누락되었는지 궁금합니다. 가장 많이 사용되지 않는 줄거리 유형은 무엇이라고 생각하십니까?
답변은 :
- 실제로는 일반적으로 사용되지 않습니다.
- 많은 배경 토론없이 이해할 수 있습니다.
- 많은 일반적인 상황에 적용 할 수 있습니다.
- 예제를 만들기 위해 재현 가능한 코드를 포함하십시오 (바람직하게는 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시에 두 개의 급등에 주목하십시오. 사이트의 네트워크 엔지니어에게는 중요한 역할을합니다. 또한 서로 가까이에서 ( 2 시간 간격으로) 발생하는 것도 중요합니다 . 그러나 기존 좌표계에서 동일한 데이터를 플로팅하면이 패턴이 완전히 숨겨져 선형으로 표시됩니다.이 두 스파이크는 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 제안) 패키지는 동일한 목적으로 사용되지만, smoothScatter()
그것이 속한 이점 갖는 graphics
패키지, 따라서 표준 R 설치 부분이다.
스파크 라인 및 기타 Tufte 아이디어와 관련 하여 CRAN 의 YaleToolkit 패키지 는 기능 및을 제공합니다 .sparkline
sparklines
더 큰 데이터 세트에 유용한 또 다른 패키지는 데이터를 버킷에 영리하게 '고정'하여 순진 산점도에 비해 너무 큰 데이터 세트를 처리하므로 헥사 빈입니다.
바이올린 플롯 (상자 플롯과 커널 밀도를 결합한)은 비교적 이국적이고 매우 시원합니다. R 의 vioplot 패키지를 사용하면 쉽게 만들 수 있습니다.
다음은 예제입니다 (wikipedia 링크도 예제를 보여줍니다).
Another nice time series visualization that I was just reviewing is the "bump chart" (as featured in this post on the "Learning R" blog). This is very useful for visualizing changes in position over time.
You can read about how to create it on http://learnr.wordpress.com/, but this is what it ends up looking like:
I also like Tufte's modifications of boxplots which let you do small multiples comparison much more easily because they are very "thin" horizontally and don't clutter up the plot with redundant ink. However, it works best with a fairly large number of categories; if you've only got a few on a plot the regular (Tukey) boxplots look better since they have a bit more heft to them.
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
)
Other ways of making these (including the other kind of Tufte boxplot) are discussed in this question.
Horizon graphs (pdf), for visualising many time series at once.
Parallel coordinates plots (pdf), for multivariate analysis.
Association and mosaic plots, for visualising contingency tables (see the vcd package)
We shouldn't forget about cute and (historically) important stem-and-leaf plot (that Tufte loves too!). You get a directly numerical overview of you data density and shape (of course if your data set is not larger then about 200 points). In R, the function stem
produces your stem-and-leaf dislay (in workspace). I prefer to use gstem
function from package fmsb to draw it directly in a graphic device. Below is a beaver body temperature variance (data should be in your default dataset) in a stem-by-leaf display:
require(fmsb)
gstem(beaver1$temp)
In addition to Tufte's excellent work, I recommend the books by William S. Cleveland: Visualizing Data and The Elements of Graphing Data. Not only are they excellent, but they were all done in R, and I believe the code is publicly available.
Boxplots! Example from the R help:
boxplot(count ~ spray, data = InsectSprays, col = "lightgray")
In my opinion it is the most handy way to take a quick look at the data or to compare distributions. For more complex distributions there is an extension called vioplot
.
Mosaic plots seem to me to meet all four criteria mentioned. There are examples in r, under mosaicplot.
Check out Edward Tufte's work and especially this book
당신은 또한 그의 여행 프리젠 테이션을 시도하고 잡을 수 있습니다 . 그것은 꽤 좋고 그의 4 권의 책 묶음을 포함하고 있습니다. (저는 그의 출판사의 주식을 가지고 있지 않다고 맹세합니다!)
그건 그렇고, 나는 그의 스파크 라인 데이터 시각화 기술을 좋아합니다. 놀라다! 구글은 이미 그것을 작성하고 구글 코드 에 넣어
요약 플롯? 이 페이지에서 언급 한 것처럼 :
참고 URL : https://stackoverflow.com/questions/2076370/most-underused-data-visualization
'IT' 카테고리의 다른 글
프로그래밍 방식으로 EditText의 입력 유형을 PASSWORD에서 NORMAL로 또는 그 반대로 변경 (0) | 2020.05.21 |
---|---|
phpstorm에서 단어 줄 바꿈 (0) | 2020.05.21 |
특정 부분 문자열 다음에 문자열 얻기 (0) | 2020.05.21 |
jq를 사용하여 json에서 여러 필드를 직렬로 구문 분석 및 표시 (0) | 2020.05.21 |
Subject와 BehaviorSubject의 차이점은 무엇입니까? (0) | 2020.05.21 |