Копаться в гробах не мой любимый хак, но он может служить своей цели:
# generate plot
# (I used a smaller base_size because my computer screen is small)
p <- ggplot(grouped,aes(ay,gruplar,fill=value)) +
geom_raster(aes(fill = value),na.rm = T) +
facet_grid(anagruplar~yil,scales = "free",space = "free",switch = "y") +
labs(x="", y="") +
theme_minimal(base_size = 10) +
theme(strip.placement = "outside",
strip.text.y = element_text(angle = 90),
axis.text.y.left = element_text(hjust = 0, size=10))
# examine ggplot object: alignment is off
p
# convert to grob object: alignment is unchanged (i.e. still off)
gp <- ggplotGrob(p)
dev.off(); grid::grid.draw(gp)
# change viewport parameters for left axis grobs
for(i in which(grepl("axis-l", gp$layout$name))){
gp$grobs[[i]]$vp$x <- unit(0, "npc") # originally 1npc
gp$grobs[[i]]$vp$valid.just <- c(0, 0.5) # originally c(1, 0.5)
}
# re-examine grob object: alignment has been corrected
dev.off(); grid::grid.draw(gp)
Псевдокод:
bases = [24, 60, 60]
input = 86462 #One day, 1 minute, 2 seconds
output = []
for base in reverse(bases)
output.prepend(input mod base)
input = input div base #div is integer division (round down)
Я придумал немного другой, и, вероятно, не такой хороший метод, как другие, но я подумал, что поделился бы в любом случае:
var theNumber = 313732097; // ms smhd var оснований = [1000, 60, 60, 24, 365]; var placeValues = []; // инициализируем массив var currPlaceValue = 1; for (var i = 0, l = base.length; i = 0; --v) {output [v] = Math.floor (theNumber / placeValues [v]); theNumber% = placeValues [v]; } console.log (выходной); // [97, 52, 8, 15, 3] -> 3 дня, 15 часов, 8 минут, 52 секунды, 97 миллисекунд
Число -> установлено:
factors = [52,7,24,60,60,1000]
value = 662321
for i in n-1..0
res[i] = value mod factors[i]
value = value div factors[i]
И наоборот:
Если у вас есть такие числа, как 32 (52), 5 (7), 7 (24), 45 ( 60), 15 (60), 500 (1000), и вы хотите, чтобы это было преобразовано в десятичное число:
Возьмите число n, умножьте его на коэффициент n-1, продолжайте для n-1..n = 0
values = [32,5,7,45,15,500]
factors = [52,7,24,60,60,1000]
res = 0;
for i in 0..n-1
res = res * factors[i] + values[i]
И у вас есть номер.