Ответ 1
Это неэлегантный взлом, но вы можете использовать функции grid
, чтобы скрыть область, которую вы не хотите. Например:
library(ggplot2)
library(reshape2)
library(grid)
data <- melt(matrix(rnorm(1000), nrow = 20))
data$type <- 1:2
data$Var1 <- data$Var1*6 - 60
p1 = ggplot(data, aes(Var1, Var2)) +
geom_tile(aes(fill = value)) +
coord_polar(theta = "x", start = pi) +
scale_x_continuous(limits = c(-180, 180)) +
facet_wrap(~type)
g1 = ggplotGrob(p1)
grid.newpage()
pushViewport(viewport(height=1, width=1, clip="on"))
grid.draw(g1)
grid.rect(x=0,y=0,height=1, width=2, gp=gpar(col="white"))
Это сокращает нижнюю половину графика (см. ниже). Было бы неплохо найти более элегантный подход, но в противном случае, возможно, вы сможете поиграть с функциями размещения и рисования в видовом экране (не говоря уже об изменении расположения меток и легенд оси), чтобы получить что-то близкое к тому, что вы хотите.