Выравнивание меток оси у в face_grid и ggplot?

Если вы хотите, чтобы вы совершали фиксации в том же порядке на feature, вы должны создать новую ветку и выполнить следующее. В противном случае просто сделайте это на feature

git rebase -i <sha for commit B>

Переместите фиксацию $ в нижнюю часть списка

git checkout master
git rebase feature <or the other branch name>

Мне было непонятно, но если вы не хотел $ вообще, а не перемещать его, удаляя его после git rebase -i. Хотя вы захотите сделать это на новой ветке, чтобы не потерять ее. Поскольку вы меняете историю.

Это также предполагает, что ветвь feature не была нажата на удаленный компьютер, поскольку история перезаписи плохо.

1
задан Z.Lin 10 March 2019 в 04:50
поделиться

3 ответа

Копаться в гробах не мой любимый хак, но он может служить своей цели:

# 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)

plot

0
ответ дан Z.Lin 10 March 2019 в 04:50
поделиться

Я думаю, что один из вариантов - нарисовать метки справа и переместить этот столбец в gtable,

p <-ggplot(grouped,aes(ay,gruplar,fill=value)) + 
  facet_grid(anagruplar~yil,scales = "free",space = "free",switch = "y") + 
  geom_raster(aes(fill = value),na.rm = T) +
  theme_minimal(base_size = 12) + labs(x="",y="") +
  scale_y_discrete(position='right') +
  theme(strip.placement = "outside", strip.text.y = element_text(angle = 90))+ 
  theme(axis.text.y.left = element_text(hjust = 0,size=14))

g <- ggplotGrob(p)
id1 <- unique(g$layout[grepl("axis-l", g$layout$name),"l"])
id2 <- unique(g$layout[grepl("axis-r", g$layout$name),"l"])
g2 <- gridExtra::gtable_cbind(g[,seq(1,id1-1)],g[,id2], g[,seq(id1+1, id2-1)], g[,seq(id2+1, ncol(g))])

library(grid)
grid.newpage()
grid.draw(g2)
.
0
ответ дан user11178449 10 March 2019 в 04:50
поделиться

Это похоже на ошибку в ggplot2 или, по крайней мере, то, что я считаю нежелательным / неожиданным поведением. Возможно, вы видели подход , предложенный здесь , который использует заполнение строк на моноширинном шрифте для достижения выравнивания.

Это довольно забавно, но если вам нужно добиться выравнивания, используя определенный шрифт, вы можете полностью заменить метки оси на geom_text. У меня есть в основном работающее решение, но оно уродливо, потому что каждый шаг, кажется, нарушает что-то еще! 0 "на оси x фиктивной фасетки. Нужен еще один хак, чтобы избавиться от этого!)

enter image description here

0
ответ дан Jon Spring 10 March 2019 в 04:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: