В matplotlib lingo вы ищете способ установки пользовательских тиков.
Кажется, вы не можете достичь этого с помощью ярлыка pyplot.hist
. Вам нужно будет создать свое изображение шаг за шагом. На Stack Overflow уже есть ответ на вопрос, который очень похож на ваш, и вы должны начать: Matplotlib - пометить каждый бит
Кажется, все, что вам нужно, это использовать aggregate
с функцией sum
(см. документы ):
mydat=structure(list(ad_set_id = c(23842593781850500, 23842593781850500,
23842593781850500, 23842593781850500, 23842593781850500, 23842593781850500,
23842593781850500, 23842593781850500, 23842593781850500, 23842593781850500,
23842593781850500, 23842593781850500, 23842593781850500, 23842593781850500,
23842593781850500, 23842593781850500, 23842593781850500, 23842593781850500,
23842593781850500, 23842593781850500, 23842593781850500, 123456,
123456, 123456, 123456, 123456, 123456, 123456, 123456, 123456,
123456, 123456, 123456, 123456, 123456, 123456, 123456, 123456,
123456, 123456, 123456, 123456), spent = c(13L, 16L, 16L, 16L,
17L, 13L, 19L, 12L, 10L, 19L, 10L, 12L, 17L, 10L, 19L, 14L, 15L,
20L, 19L, 12L, 10L, 12L, 16L, 16L, 19L, 17L, 20L, 14L, 10L, 10L,
10L, 20L, 13L, 19L, 15L, 20L, 12L, 18L, 15L, 19L, 14L, 14L),
ad_set_id.1 = c(23842593781850500, 23842593781850500, 23842593781850500,
23842593781850500, 23842593781850500, 23842593781850500,
23842593781850500, 23842593781850500, 23842593781850500,
23842593781850500, 23842593781850500, 23842593781850500,
23842593781850500, 23842593781850500, 23842593781850500,
23842593781850500, 23842593781850500, 23842593781850500,
23842593781850500, 23842593781850500, 23842593781850500,
123456, 123456, 123456, 123456, 123456, 123456, 123456, 123456,
123456, 123456, 123456, 123456, 123456, 123456, 123456, 123456,
123456, 123456, 123456, 123456, 123456), realp = c(7L, 6L,
9L, 7L, 9L, 9L, 7L, 9L, 7L, 5L, 9L, 9L, 9L, 10L, 6L, 6L,
6L, 6L, 6L, 10L, 5L, 79L, 99L, 72L, 91L, 85L, 97L, 93L, 51L,
86L, 78L, 71L, 53L, 61L, 100L, 59L, 52L, 99L, 98L, 65L, 93L,
56L)), .Names = c("ad_set_id", "spent", "ad_set_id.1", "realp"
), class = "data.frame", row.names = c(NA, -42L))
x <- aggregate(.~ad_set_id,mydat,sum)
x$flag <- 0+(x$realp > x$spent)
, а затем вы получите:
> x
ad_set_id spent ad_set_id.1 realp flag
1 1.234560e+05 323 2.592576e+06 1638 1
2 2.384259e+16 309 5.006945e+17 157 0