Я не думаю, что ваш набор данных подходит для пузырькового графика. Пузырьковая диаграмма предназначена для рисования трех переменных, то есть многомерного случая, x
, y
и другого z
.
Но здесь я не вижу никаких x
и y
.
library(tidyverse)
set.seed(1)
(mydf <-
data_frame(
ID = 1:50,
value = sample(1:50, 50, replace = TRUE)
) %>%
add_column(variable = gl(2, k = 25, labels = c("on.tank", "on.main")), .before = 2))
#> # A tibble: 50 x 3
#> ID variable value
#> <int> <fct> <int>
#> 1 1 on.tank 14
#> 2 2 on.tank 19
#> 3 3 on.tank 29
#> 4 4 on.tank 46
#> 5 5 on.tank 11
#> 6 6 on.tank 45
#> 7 7 on.tank 48
#> 8 8 on.tank 34
#> 9 9 on.tank 32
#> 10 10 on.tank 4
#> # ... with 40 more rows
К этому набору данных можно провести summarise(n())
или tally()
для каждой группы (variable, value
)
mydf %>%
count(variable, value) # equivalent to group_by() and tally()
#> # A tibble: 39 x 3
#> # Groups: variable [?]
#> variable value n
#> <fct> <int> <int>
#> 1 on.tank 4 1
#> 2 on.tank 7 1
#> 3 on.tank 9 1
#> 4 on.tank 11 3
#> 5 on.tank 14 2
#> 6 on.tank 19 1
#> 7 on.tank 20 2
#> 8 on.tank 25 1
#> 9 on.tank 29 1
#> 10 on.tank 32 1
#> # ... with 29 more rows
n
будет размером пузырька.
mydf %>%
count(variable, value) %>%
ggplot() +
aes(x = value, y = n) +
# geom_point(alpha = .5) +
geom_text(aes(label = n), size = 2.5) +
geom_point(aes(size = n, colour = variable), shape = 1) +
scale_size_continuous(range = c(1, 10), breaks = NULL)
Здесь у нас есть только value
-count
. Это не многомерная задача. Поскольку это не x
-y
с третьей переменной, пузырьковый график кажется не таким информативным. Изменение размера просто отвлекает.
Альтернативы
Можно подумать и другие сюжеты. Например,
mydf %>%
ggplot() +
aes(x = value) +
geom_dotplot(binwidth = 1) +
facet_grid(variable ~ .)
Вы можете сравнить два фактора и подсчитать каждое значение. Я думаю, что это более полезно, чем пузырьковый сюжет.
Поскольку количество точек данных не мало, можно использовать и гистограмму: geom_bar()
mydf %>%
ggplot() +
aes(x = value) +
geom_bar(aes(y = ..count..)) +
facet_grid(variable ~ .)
Большой размер набора данных
set.seed(1)
(mydf2 <-
data_frame(
ID = 1:3000,
value = sample(1:200, 3000, replace = TRUE)
) %>%
add_column(variable = gl(2, k = 1500, labels = c("on.tank", "on.main")), .before = 2))
#> # A tibble: 3,000 x 3
#> ID variable value
#> <int> <fct> <int>
#> 1 1 on.tank 54
#> 2 2 on.tank 75
#> 3 3 on.tank 115
#> 4 4 on.tank 182
#> 5 5 on.tank 41
#> 6 6 on.tank 180
#> 7 7 on.tank 189
#> 8 8 on.tank 133
#> 9 9 on.tank 126
#> 10 10 on.tank 13
#> # ... with 2,990 more rows
В том же процессе гистограмма дает
mydf2 %>%
ggplot() +
aes(x = value) +
geom_bar(aes(y = ..count..)) +
facet_grid(variable ~ .)
Если вы хотите подсчитать серию из 10 дней, может работать следующее:
mydf2 %>%
count(variable, value) %>%
filter(value == 10)
#> # A tibble: 2 x 3
#> variable value n
#> <fct> <int> <int>
#> 1 on.tank 10 6
#> 2 on.main 10 10
person
Blended
schedule
10.01.2019
geom_point
(пузыри). - person pogibas   schedule 09.01.2019x
,y
в сюжете вы хотите? (этоx=Value
иy=Count
), и я предполагаю, чтоCount
— это количество каждогоValue
наFactor
. Честно говоря, чего вы хотите, до сих пор не ясно. - person DS_UNI   schedule 09.01.2019