如何仅显示极地ggplot的绘图区域的一部分?

Rav*_*vat 19 r ggplot2

假设极坐标中有一个数据集被绘制为扇区

library(ggplot2)
library(reshape2)
data <- melt(matrix(rnorm(1000), nrow = 20))
data$type <- 1:2
data$Var1 <- data$Var1*6 - 60

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)
Run Code Online (Sandbox Code Playgroud)

它给出了下图: 在此输入图像描述

如何在不完整圆圈的情况下移除绘图的底部(空白)部分?

eip*_*i10 11

这是一个不优雅的黑客,但你可以使用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"))
Run Code Online (Sandbox Code Playgroud)

这会切断图表的下半部分(见下文).找到更优雅的方法会很高兴,但如果不这样做,也许您可​​以使用视口放置和绘图功能(更不用说更改轴标签和图例的位置)来获得接近您想要的东西. 在此输入图像描述