這是對問題How to fit custom long annotations geom_text inside plot area for a Donuts plot?的跟進。看到接受的答案,可以理解的結果是在頂部和底部有額外的空白區域。我怎樣才能擺脫那些額外的空白區域?我看着theme
aspect.ratio
但這不是我想要的,雖然它做的工作,但扭曲的情節。我把這個情節從一個正方形裁剪成一個橫向格式。ggplot2:如何裁剪出劇情頂部和底部的空白區域?
我該怎麼做?
UPDATE這是我用例的自包含例如:
library(ggplot2); library(dplyr); library(stringr)
df <- data.frame(group = c("Cars", "Trucks", "Motorbikes"),n = c(25, 25, 50),
label2=c("Cars are blah blah blah", "Trucks some of the best in town", "Motorbikes are great if you ..."))
df$ymax = cumsum(df$n)
df$ymin = cumsum(df$n)-df$n
df$ypos = df$ymin+df$n/2
df$hjust = c(0,0,1)
ggplot(df %>%
mutate(label2 = str_wrap(label2, width = 10)), #change width to adjust width of annotations
aes(x="", y=n, fill=group)) +
geom_rect(aes_string(ymax="ymax", ymin="ymin", xmax="2.5", xmin="2.0")) +
expand_limits(x = c(2, 4)) + #change x-axis range limits here
# no change to theme
theme(axis.title=element_blank(),axis.text=element_blank(),
panel.background = element_rect(fill = "white", colour = "grey50"),
panel.grid=element_blank(),
axis.ticks.length=unit(0,"cm"),axis.ticks.margin=unit(0,"cm"),
legend.position="none",panel.spacing=unit(0,"lines"),
plot.margin=unit(c(0,0,0,0),"lines"),complete=TRUE) +
geom_text(aes_string(label="label2",x="3",y="ypos",hjust="hjust")) +
coord_polar("y", start=0) + scale_x_discrete()
這是我想找到一個答案來解決這些註釋導致空格結果:
這不起作用......你測試過了嗎?你甚至可以在這裏插入你的解決方案(https://stackoverflow.com/questions/45904230/is-it-possible-to-crop-a-plot-when-doing-arrangegrob),你會發現它不起作用。 –
是的,它爲我工作。我編輯我的評論,以包括出口的情節。我注意到RStudio的窗口大小更像是1:1的比例,但是當我調整窗口大小時,顯然頂部和底部被裁剪了。但是你是對的,兩張圖的代碼都不起作用。 –