여러 "히스토그램"시각화 (막 대형 차트)


9

데이터를 시각화하는 올바른 방법을 선택하는 데 어려움이 있습니다. 하자 우리가 가지고 있다고 서점 판매 책을 , 모든 책은 적어도 하나이 개 범주를 .

서점의 경우 모든 서적 범주를 세면 해당 서점의 특정 범주에 해당하는 서적 수를 보여주는 히스토그램을 얻습니다.

서점 행동을 시각화하고 싶습니다. 다른 카테고리보다 카테고리를 선호하는지 확인하고 싶습니다. 나는 그들이 공상 과학을 모두 선호하는지보고 싶지 않지만 모든 카테고리를 동등하게 취급하는지 여부를보고 싶습니다.

~ 1M 서점이 있습니다.

나는 4 가지 방법을 생각했다.

  1. 데이터를 샘플링하고 500 개의 서점 히스토그램 만 표시하십시오. 10x10 격자를 사용하여 5 개의 별도 페이지에 표시하십시오. 4x4 그리드의 예 :

    여러 히스토그램 1

  2. # 1과 같습니다. 그러나 이번에는 x 축 값을 카운트 디스크에 따라 정렬하므로 선호가 있으면 쉽게 볼 수 있습니다.

  3. 히스토그램을 # 2에 데크처럼 모아서 3D로 표시한다고 상상해보십시오. 이 같은:
    3D 히스토그램

  4. 히트 맵 (2D 히스토그램)을 사용하여 색상을 나타내는 데 세 번째 축 색상을 사용하는 대신 : 2D 히스토그램
    일반적으로 서점에서 다른 카테고리를 선호하는 경우 왼쪽에서 오른쪽으로 멋진 그라디언트로 표시됩니다.

여러 히스토그램을 나타내는 다른 시각화 아이디어 / 도구가 있습니까?


4
히스토그램이 아닌 막대 차트를 의미한다고 생각합니다
Rob Hyndman

@Rob : 히스토그램은 주파수 분포를 나타내는 특수한 막 대형 차트가 아닙니까? 많은 서점의 카테고리 빈도를 시각화하려고합니다.
nimcap

1
@nimcap 아니요, 히스토그램이 연속 변수에 있고 서적 범주가 범주 형 변수이기 때문입니다.

@mbq 서점에 3 권의 책이 있고 범주가 B1 : [c1, c2, c3] B2 : [c1, c3] B3 : [c1, c4]라고 가정하겠습니다. 카테고리 수를 집계하면 [c1 x 3, c2 x 1, c3 x 2, c4 x 1]이됩니다. 히스토그램을 생성하기에 충분하지 않습니까?
nimcap

2
@nimcap 아니요, 막대 차트를 생성하기에 충분합니다. 히스토그램은 예를 들어 책의 가격으로 수행 될 수 있습니다.

답변:


12

알다시피 귀하의 질문에 대한 쉬운 답변이 없습니다!

이상하거나 다른 서점을 찾는 데 관심이 있다고 생각하십니까? 이 경우 PCA 와 같은 것을 시도해 볼 수 있습니다 (자세한 내용은 wikipedia 클러스터 분석 페이지 참조).

아이디어를 얻으려면이 예제를 고려하십시오. 26 개의 서점 (A, B, .. Z)이 있습니다. 모든 서점은 다음을 제외하고 비슷합니다.

  1. Z 상점은 몇 권의 역사 서적 만 판매합니다.
  2. 상점 OY는 평균보다 많은 로맨스 책을 판매합니다.

주요 구성 요소 플롯은 추가 조사를 위해 이러한 상점을 강조합니다.

샘플 R 코드는 다음과 같습니다.

> d = data.frame(Romance = rpois(26, 50), Horror = rpois(26, 100), 
               Science = rpois(26, 75), History = rpois(26, 125))
> rownames(d) = LETTERS
#Alter a few shops
> d[15:25,][1] = rpois(11,150)
> d[26,][4] = rpois(1, 10)
#look at the data
> head(d, 2)
       Romance Horror Science History
 A      36    107      62     139
 B      47     93      64     118
> books.PC.cov = prcomp(d)
> books.scores.cov = predict(books.PC.cov)
# Plot of PC1 vs PC2
> plot(books.scores.cov[,1],books.scores.cov[,2],
       xlab="PC 1",ylab="PC 2", pch=NA)
> text(books.scores.cov[,1],books.scores.cov[,2],labels=LETTERS)

이것은 다음 플롯을 제공합니다.

PCA 플롯 http://img265.imageshack.us/img265/7263/tmplx.jpg

그것을주의해라:

  1. Shop z는 중요한 포인트입니다.
  2. 다른 상점들은 두 개의 별개의 그룹을 형성합니다.

다른 가능성

당신은 또한 GGobi를 볼 수 있습니다 , 나는 그것을 사용한 적이 없지만 재미있게 보입니다.


소중한 답변 감사합니다. 상황은 심지어 모국어로 설명하기가 어렵습니다. 서점이 특정 카테고리를 선호하는지 관심이 없지만 카테고리를 선호하는지 확인하고 싶습니다. 실제로 이것은 내가 기대하는 것입니다. 3 개의 서점 (B1, B2, B3)과 4 개의 범주 (C1, C2, C3, C4)가 있다고 가정 해 봅시다. 판매 데이터는 B1 (1, 1, 20, 20) B2 (90, 1, 1, 1), B3 (1, 1, 1, 30)입니다. 이 데이터를 보면 다른 사람들에게 일부 카테고리를 선호한다고 말할 수 있습니다. 그러나 데이터가 B1 (20, 30, 20, 20) B2 (90, 100, 100, 100), B3 (30, 30, 40, 40)과 같다면 말할 수 없습니다.
nimcap

내 예에서, 상점 OY는 로맨스 책을 선호합니다. 이것이 PC 상점에서 이러한 상점들이 다른 그룹에있는 이유입니다.
csgillespie

2
나는 이것을 좋은 일반 답변으로 투표했지만 많은 데이터 포인트를 다루는 것은 실제적인 답변으로 잔인 할 것입니다.
John

1
+1 이것은 확실히 OP가 원하는 것이 아니지만 여전히 그녀가 원하는 것입니다.

1
+1 PCA의 "지구 간 (down-to-earth)"응용의 좋은 예.
니코

3

정의 된 이름 (아마도 "병렬 플롯")이없고 다음과 같은 것을 제안합니다.

대체 텍스트

기본적으로 모든 서점에 대한 모든 수를 x 축에 나열된 범주에 대한 점으로 표시하고 각 서점의 결과를 선으로 연결합니다. 그럼에도 불구하고 이것은 1M 라인에 너무 얽혀있을 수 있습니다. 이 개념은 csgillespie가 이미 언급 한 GGobi에서 나왔습니다.


1
병렬 도표는 변수의 "올바른"순서에 크게 의존하므로 너무 많은 범주의 경우 지루해질 것입니다. 올바른 출처는 1981 년 A.Inselberg 인 것으로 보입니다.
Benjamin

3
그들은 병렬 플롯 좌표라고하고 : en.wikipedia.org/wiki/Parallel_coordinates
사이먼 번

@ 시몬 감사합니다; @honk 동의합니다. 이것이 내가 사용하지 않는 이유 중 하나입니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.