R : 왜곡 된 카운트로 데이터를 표시하는 데 적합한 플롯

수화물

다음과 같은 데이터가 있습니다.

Name     Count
Object1  110
Object2  111
Object3  95
Object4  40
...
Object2000 1

따라서 처음 3 개 개체 만 개수가 많고 나머지 1996 개체는 40 개 미만, 대다수는 10 개 미만입니다.이 데이터를 다음과 ggplot같이 막대로 플로팅합니다 .

ggplot(data=object_count, mapping = aes(x=object, y=count)) +
  geom_bar(stat="identity") +
  theme(axis.title.x=element_blank(),
        axis.text.x=element_blank(),
        axis.ticks.x=element_blank())

내 줄거리는 다음과 같습니다. 보시다시피 적은 개수의 개체가 너무 많기 때문에 그래프의 너비가 매우 길고 막대의 너비가 작아서 개수가 많은 개체에서는 거의 보이지 않습니다. 이 데이터를 표현하는 더 좋은 방법이 있습니까? 내 목표는 몇 개의 상위 개수 개체를 표시하고 개수가 적은 개체가 많이 있음을 보여주는 것입니다. 낮은 카운트를 함께 그룹화하는 방법이 있습니까?

여기에 이미지 설명 입력

존 스프링

내 생각 엔 데이터는 다음과 같습니다.

set.seed(1)
object_count <- tibble(
  obj_num = 1:2000,
  object = paste0("Object", obj_num),
  count = ceiling(20 * rpois(2000, 10) / obj_num)
)
head(object_count)
## A tibble: 6 x 3
#   obj_num object  count
#     <int> <chr>   <dbl>
#1        1 Object1   160
#2        2 Object2   100
#3        3 Object3    46
#4        4 Object4    55
#5        5 Object5    56
#6        6 Object6    40

물론 그것을 플롯 ggplot(object_count, aes(object, count)) + geom_col() + [theme stuff]하면 비슷한 그림을 얻습니다.

여기에 이미지 설명 입력


다음은 "상위 개수의 개체 몇 개를 표시하고 개수가 적은 개체가 많이 있음을 보여주는"전략입니다.

히스토그램

중요한 큰 값이 극적으로 덜 자주 나타나고 충분히 눈에 띄지 않기 때문에 바닐라 히스토그램은 여기서 명확하지 않을 수 있습니다.

ggplot(object_count, aes(count)) +
  geom_histogram() 

여기에 이미지 설명 입력

그러나 우리는 작은 값을 더 강조하기 위해 y 축을 변환함으로써 그것을 바꿀 수 있습니다. pseudo_log은 선형에 가까운 큰 값을 변환 로그처럼 작동하지만 이후 -1 1.이보기에서 변화가에 대한 좋은, 우리는 분명히 하나의 모습과 이상 값이 어디에 있는지, 또한 더 많은 있다는 것을 볼 수있다 작은 값. binwidth = 1큰 값의 특정 값이 자신의 일반적인 범위만큼 중요하지 않은 경우 여기 더 넓은 것으로 설정 될 수있다.

ggplot(object_count, aes(count)) +
  geom_histogram(binwidth = 1) +
  scale_y_continuous(trans = "pseudo_log",
                     breaks = c(0:3, 100, 1000), minor_breaks = NULL)

여기에 이미지 설명 입력

패싯

또 다른 옵션은 뷰를 두 부분으로 분할하는 것입니다. 하나는 큰 값에 대한 세부 정보이고 다른 하나는 모든 작은 값을 표시합니다.

object_count %>%
  mutate(biggies = if_else(count > 20, "Big", "Little")) %>%
  ggplot(aes(obj_num, count)) +
  geom_col() +
  facet_grid(~biggies, scales = "free") 

여기에 이미지 설명 입력

무거운

또 다른 옵션은 10 미만의 모든 개수를 너무 한꺼번에 묶을 수 있습니다. 아래 버전은 개체 이름과 개수를 강조하고 "기타"범주에는 포함 된 값의 수를 표시하기 위해 레이블이 지정되어 있습니다.

object_count %>%
  mutate(group = if_else(count < 10, "Others", object)) %>%
  group_by(group) %>%
  summarize(avg = mean(count), count = n()) %>%
  ungroup() %>%
  mutate(group = if_else(group == "Others",
                         paste0("Others (n =", count, ")"),
                         group)) %>%
  mutate(group = forcats::fct_reorder(group, avg)) %>%
  ggplot() + 
  geom_col(aes(group, avg)) +
  geom_text(aes(group, avg, label = round(avg, 0)), hjust = -0.5) +
  coord_flip()

여기에 이미지 설명 입력

누적 개수 (~ 파레토 차트)

총 개수의 비율에 관심이있는 경우 누적 개수를보고 큰 값이 큰 비율을 구성하는 방법을 볼 수도 있습니다.

object_count %>%
  mutate(cuml = cumsum(count)) %>%
  ggplot(aes(obj_num)) +
  geom_tile(aes(y = count + lag(cuml, default = 0),
            height = count))

여기에 이미지 설명 입력

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Linux 부팅에서 조용한 스플래시를 업데이트 한 후 왜곡 된 그래픽 해상도

분류에서Dev

ffmpeg PCM 데이터 파일을 wav 파일로 변환하는 중 왜곡 된 (시끄러운) 데이터

분류에서Dev

ffmpeg PCM 데이터 파일을 wav 파일로 변환하는 중 왜곡 된 (시끄러운) 데이터

분류에서Dev

실시간 데이터를 플롯으로 플롯하려고합니다.

분류에서Dev

R의 플롯에서 무작위로 생성 된 데이터를 덜 균일하게 만드는 방법

분류에서Dev

플로팅 된 데이터를 표시하는 Switch-case 문

분류에서Dev

R은 정규 축에 로짓 변환 된 데이터를 플롯합니다 (로지스틱 변환 됨).

분류에서Dev

countDistinct로 데이터 왜곡

분류에서Dev

비닝 된 데이터로 R에서 퀼트 플롯을 생성하는 방법은 무엇입니까?

분류에서Dev

R에있는 데이터의 나란한 상자 플롯 (한 플롯)

분류에서Dev

Angular는 캐시 된 데이터를 표시하고 필요한 경우 백그라운드에서 데이터를 업데이트합니다.

분류에서Dev

R : 동일한 플롯에서 여러 데이터 세트 시각화

분류에서Dev

r의 데이터 프레임을 사용하여 동적으로 표시되는 플롯을 만드는 방법은 무엇입니까?

분류에서Dev

k는 r의 원래 데이터로 플롯을 의미합니다.

분류에서Dev

r 종횡비 데이터에 대한 산점도를 시계 방향으로 플롯

분류에서Dev

데이터 포인트가 하나만있는 경우 R로 플롯으로 텍스트를 표시 할 수 없습니다.

분류에서Dev

R 하나의 플롯에서 서로 다른 데이터 프레임의 상자 플롯을 플롯합니다.

분류에서Dev

하위 설정 데이터 R 플롯

분류에서Dev

네트워크로 연결된 C 프로그램에서 브라우저 클라이언트로 실시간 데이터를 보내 플롯합니다.

분류에서Dev

데이터를 집계하고 R에서 막대 그림으로 플롯

분류에서Dev

JQuery에서 동적으로 업데이트 된 데이터를 표시하는 방법

분류에서Dev

R : 많은 데이터가 포함 된 .png로 플롯을 내보내는 더 빠른 방법?

분류에서Dev

matplotlib의 표시된 플롯에서 데이터를 가져와 확률 밀도 함수에 전달합니다.

분류에서Dev

R에서 지리 참조 된 데이터 세트를 플로팅하려면 어떻게해야합니까?

분류에서Dev

플롯 데이터-R의 boxplot NA를 제거하는 방법

분류에서Dev

두 데이터 세트를 결합하여 파이썬에서 하나의 결합 된 플롯을 만드는 방법

분류에서Dev

벡터, 왜곡 된 데이터, 포인터로 함수에 전달할 때

분류에서Dev

한 데이터 세트의 레코드 수를 다른 데이터와 비교하고 백분율로 표시하는 SQL 카운트

분류에서Dev

데이터를로드하면 양식 디자인이 왜곡됨

Related 관련 기사

  1. 1

    Linux 부팅에서 조용한 스플래시를 업데이트 한 후 왜곡 된 그래픽 해상도

  2. 2

    ffmpeg PCM 데이터 파일을 wav 파일로 변환하는 중 왜곡 된 (시끄러운) 데이터

  3. 3

    ffmpeg PCM 데이터 파일을 wav 파일로 변환하는 중 왜곡 된 (시끄러운) 데이터

  4. 4

    실시간 데이터를 플롯으로 플롯하려고합니다.

  5. 5

    R의 플롯에서 무작위로 생성 된 데이터를 덜 균일하게 만드는 방법

  6. 6

    플로팅 된 데이터를 표시하는 Switch-case 문

  7. 7

    R은 정규 축에 로짓 변환 된 데이터를 플롯합니다 (로지스틱 변환 됨).

  8. 8

    countDistinct로 데이터 왜곡

  9. 9

    비닝 된 데이터로 R에서 퀼트 플롯을 생성하는 방법은 무엇입니까?

  10. 10

    R에있는 데이터의 나란한 상자 플롯 (한 플롯)

  11. 11

    Angular는 캐시 된 데이터를 표시하고 필요한 경우 백그라운드에서 데이터를 업데이트합니다.

  12. 12

    R : 동일한 플롯에서 여러 데이터 세트 시각화

  13. 13

    r의 데이터 프레임을 사용하여 동적으로 표시되는 플롯을 만드는 방법은 무엇입니까?

  14. 14

    k는 r의 원래 데이터로 플롯을 의미합니다.

  15. 15

    r 종횡비 데이터에 대한 산점도를 시계 방향으로 플롯

  16. 16

    데이터 포인트가 하나만있는 경우 R로 플롯으로 텍스트를 표시 할 수 없습니다.

  17. 17

    R 하나의 플롯에서 서로 다른 데이터 프레임의 상자 플롯을 플롯합니다.

  18. 18

    하위 설정 데이터 R 플롯

  19. 19

    네트워크로 연결된 C 프로그램에서 브라우저 클라이언트로 실시간 데이터를 보내 플롯합니다.

  20. 20

    데이터를 집계하고 R에서 막대 그림으로 플롯

  21. 21

    JQuery에서 동적으로 업데이트 된 데이터를 표시하는 방법

  22. 22

    R : 많은 데이터가 포함 된 .png로 플롯을 내보내는 더 빠른 방법?

  23. 23

    matplotlib의 표시된 플롯에서 데이터를 가져와 확률 밀도 함수에 전달합니다.

  24. 24

    R에서 지리 참조 된 데이터 세트를 플로팅하려면 어떻게해야합니까?

  25. 25

    플롯 데이터-R의 boxplot NA를 제거하는 방법

  26. 26

    두 데이터 세트를 결합하여 파이썬에서 하나의 결합 된 플롯을 만드는 방법

  27. 27

    벡터, 왜곡 된 데이터, 포인터로 함수에 전달할 때

  28. 28

    한 데이터 세트의 레코드 수를 다른 데이터와 비교하고 백분율로 표시하는 SQL 카운트

  29. 29

    데이터를로드하면 양식 디자인이 왜곡됨

뜨겁다태그

보관