От новичка до гуру: Курсы программирования на CyberDuff

Гистограмма с накоплением в процентах с использованием символьных данных

Скажем, у меня есть эти данные:

dat <- read.table(text = " name1 name2
jim bob
jim bob
jim tom
jim sue
jim other
sue bob
sue tom
sue jim
bob bob
bob jim
bob bob
bob sue
bob jim
bob other
bob other",sep = "",header = TRUE)

Как создать столбчатую диаграмму с накоплением с помощью ggplot2? Я бы хотел, чтобы name1 был на оси x, а процент каждого name2 на оси y. Итак, для jim bob будет 0,4, tom равно 0,2, sue будет 0,2, а other будет 0,2.

22.08.2019

  • Ой, хороший улов. Я думал, что знаменатель 6, когда было 5. Спасибо. 22.08.2019

Ответы:


1

Используя dplyr, мы можем вычислить соотношение каждого name2 в name1 и построить их, используя ggplot.

library(dplyr)
library(ggplot2)

dat %>%
  group_by(name1, name2) %>%
  summarise(n = n()) %>%
  mutate(n = n/sum(n)) %>%
  ggplot() + aes(name1, n,  fill = name2, label = round(n, 2)) +
  geom_col() + 
  geom_text(size = 3, position = position_stack(vjust = 0.5))

введите описание изображения здесь

22.08.2019
  • Большое спасибо! Одно быстрое продолжение, если это нормально. Как мне изменить положение одной категории (other) по оси Y, чтобы она всегда отображалась, скажем, наверху? Или установите порядок категорий x (может быть, sue будет первым)? 22.08.2019
  • @ bill999 вы можете расположить уровни факторов в зависимости от вашего выбора. Так что начните с dat %>% mutate(name2 = factor(name2, levels = c("other", setdiff(levels(name2), "other")))) %>% group_by(name1, name2)......, чтобы другие всегда были наверху. Или dat %>% mutate(name1 = factor(name1, levels = c("sue", setdiff(levels(name1), "sue")))) %>% group_by(name1, name2)......., чтобы Сью был первым. 22.08.2019
  • Очень полезно. Очень признателен! 22.08.2019
  • Новые материалы

    5 простых концепций Python, ставших сложными
    #заранее извините 1) Переменные x = 4 y = 5 Переменная в Python — это символическое представление объекта. После присвоения некоторого объекта переменной Python мы приобретаем..

    «Освоение вероятности: изучение совместной, предельной, условной вероятности и теоремы Байеса —…
    Виды вероятности: Совместная вероятность Предельная вероятность Условная вероятность Диаграмма Венна в вероятностях: В “Set Theory” мы создаем диаграмму Венна...

    Основы Spring: Bean-компоненты, контейнер и внедрение зависимостей
    Как лего может помочь нашему пониманию Когда мы начинаем использовать Spring, нам бросают много терминов, и может быть трудно понять, что они все означают. Итак, мы разберем основы и будем..

    Отслеживание состояния с течением времени с дифференцированием снимков
    Время от времени что-то происходит и революционизирует часть моего рабочего процесса разработки. Что-то более забавное вместо типичного утомительного и утомительного процесса разработки. В..

    Я предполагаю, что вы имеете в виду методы обработки категориальных данных.
    Я предполагаю, что вы имеете в виду методы обработки категориальных данных. Пожалуйста, проверьте мой пост Инструментарий специалиста по данным для кодирования категориальных переменных в..

    Игра в прятки с данными
    Игра в прятки с данными Я хотел бы, чтобы вы сделали мне одолжение и ответили на следующие вопросы. Гуглить можно в любое время, здесь никто не забивается. Сколько регионов в Гане? А как..

    «Раскрытие математических рассуждений с помощью Microsoft MathPrompter и моделей больших языков»
    TL;DR: MathPrompter от Microsoft показывает, как использовать математические рассуждения с большими языковыми моделями; 4-этапный процесс для улучшения доверия и рассуждений в математических..