How to remove margins in ggplot2 chart

女生的网名这么多〃 提交于 2019-12-11 06:57:02

问题


I am currently creating plots with ggplot2 for a latex document and discovered that ggplot2 adds many unwanted margins:

  • painted red by plot.background=element_rect(fill="red"):
    • small margin on the left
    • small margin between image and legend
  • painted violet with photoshop:
    • margin on the left and the right
    • 1px margin on the bottom

Which more rules are needed to remove these margins? It's really difficult to google all these configuration options. This is my actual chart:

library(ggplot2)
library(scales)
label <- c("A", "B", "C", "D")
value <- c(61, 26, 9, 4)
values <- data.frame(label, value)
myplot <- ggplot(values, aes(x = "", y=value, fill=label))
myplot <- myplot + theme(legend.position="bottom")
myplot <- myplot + labs(fill="")
myplot <- myplot + geom_bar(stat="identity", width=1)
myplot <- myplot + geom_text(
  aes(x=1.3, y=value/2+c(0, cumsum(value)[-length(value)])),
  label=percent(value/100),
  size=2
)
myplot <- myplot + coord_polar(theta="y")
myplot <- myplot + theme(plot.background=element_rect(fill="red"))
myplot <- myplot + theme(
  plot.margin=unit(c(0,0,0,0), "mm"),
  legend.margin=unit(0, "mm"),
  axis.title=element_blank(),
  axis.ticks=element_blank()
)
ggsave("pie.pdf")

回答1:


You can remove the rest of the axis space via the theme elements axis.text and axis.tick.length.

So you'd add something like the following to your theme code:

axis.text = element_blank(), axis.ticks.length = unit(0, "mm")

In the current development version of ggplot2, ggplot2_2.1.0.9001, there is a new theme element legend.box.spacing that could also be useful here to remove all space between the legend and the plot: legend.box.spacing = unit(0, "mm").




回答2:


Adjust the plot.margin settings so that the bottom and left side are negative numbers.

plot.margin=unit(c(0,0,-12,-5), "mm")

If you do get rid of the margin on the bottom, you are also sacrificing the legend.



来源:https://stackoverflow.com/questions/40407498/how-to-remove-margins-in-ggplot2-chart

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!