ggplot2 geom_dotplot () показывает не все точки - PullRequest
1 голос
/ 09 мая 2020

Я пытаюсь показать количество точек на id, равное count, разделенных на name в следующем фрейме данных:

df <- data.frame(name = c("name1", "name1", "name1", "name1", "name2", "name2", "name2"),
                 id = c(0, 1, 2, 3, 0, 1, 2),
                 count = c(2, 4, 3, 2, 2, 2, 3))

То, что у меня сейчас есть, это.

ggplot(data = df, aes(x = name, y = id)) +
  geom_dotplot(stackdir = "center", binaxis = 'y', dotsize = 0.5, binwidth = 1) +
  scale_y_continuous(breaks = seq(0, 3, 1), minor_breaks = seq(0, 3, 1))

enter image description here

Однако это, похоже, не показывает мне все точки на id (это показывает только 1 точку для каждого id, хотя id 0 для name1 имеет счет 2).

Как мне go исправить это?

1 Ответ

3 голосов
/ 09 мая 2020

Я не знаю способа передать сводные данные в geom_dotplot(). Вместо этого вы можете uncount() сначала:

library(ggplot2)
library(tidyr)

df <- data.frame(name = c("name1", "name1", "name1", "name1", "name2", "name2", "name2"),
                 id = c(0, 1, 2, 3, 0, 1, 2),
                 count = c(2, 4, 3, 2, 2, 2, 3)) %>%
  uncount(count)

ggplot(data = df, aes(x = name, y = id)) +
  geom_dotplot(stackdir = "center", binaxis = 'y', dotsize = 0.5, binwidth = 1) +
  scale_y_continuous(breaks = seq(0, 3, 1), minor_breaks = NULL)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...