本文介绍了如何去除坐标轴和坐标轴之间的空间ggplot2中的区域图?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 我有以下数据框: uniq 当我制作一个区域图时: ggplot(data = uniq)+ geom_area(aes(x = year,y = uniq.p,fill = uniq.loc),stat =identity,position =stack)+ scale_x_continuous(limits = c(1986,2014))+ scale_y_continuous(limits = c(0,101))+ theme_bw() 我得到这样的结果: 'p> 然而,我想删除轴和实际情节之间的空间。当添加主题(panel.grid = element_blank(),panel.margin =单元(-0.8, 线))我得到以下错误消息: 主题错误(panel.grid = element_blank(),panel.margin = unit(-0.8,: 找不到函数unit 任何建议如何解决这个问题?解决方案 的问题是通过将解决扩大= C(0,0 )到 scale_x_continuous 和 scale_y_continuous 。这也消除了添加 panel.margin 参数。 代码: ggplot(data = uniq)+ geom_area(aes(x = year,y = uniq.p,fill = uniq.loc),stat =identity,position =stack )+ scale_x_continuous(limits = c(1986,2014),expand = c(0,0))+ scale_y_continuous(limits = c(0,101),expand = c(0,0))+ theme_bw()+主题(panel.grid = element_blank(),panel.border = element_blank()) 结果: I have the following dataframe:uniq <- structure(list(year = c(1986L, 1987L, 1991L, 1992L, 1993L, 1994L, 1995L, 1996L, 1997L, 1998L, 1999L, 2000L, 2001L, 2002L, 2003L, 2004L, 2005L, 2006L, 2007L, 2008L, 2009L, 2010L, 2011L, 2012L, 2013L, 2014L, 1986L, 1987L, 1991L, 1992L, 1993L, 1994L, 1995L, 1996L, 1997L, 1998L, 1999L, 2000L, 2001L, 2002L, 2003L, 2004L, 2005L, 2006L, 2007L, 2008L, 2009L, 2010L, 2011L, 2012L, 2013L, 2014L, 1986L, 1987L, 1991L, 1992L, 1993L, 1994L, 1995L, 1996L, 1997L, 1998L, 1999L, 2000L, 2001L, 2002L, 2003L, 2004L, 2005L, 2006L, 2007L, 2008L, 2009L, 2010L, 2011L, 2012L, 2013L, 2014L), uniq.loc = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("u.1", "u.2", "u.3"), class = "factor"), uniq.n = c(1, 1, 1, 2, 5, 4, 2, 16, 16, 10, 15, 14, 8, 12, 20, 11, 17, 30, 17, 21, 22, 19, 34, 44, 56, 11, 0, 0, 3, 3, 7, 17, 12, 21, 18, 10, 12, 9, 7, 11, 25, 14, 11, 17, 12, 24, 59, 17, 36, 50, 59, 12, 0, 0, 0, 1, 4, 6, 3, 3, 9, 3, 4, 2, 5, 2, 12, 6, 8, 8, 3, 2, 9, 5, 20, 7, 10, 8), uniq.p = c(100, 100, 25, 33.3, 31.2, 14.8, 11.8, 40, 37.2, 43.5, 48.4, 56, 40, 48, 35.1, 35.5, 47.2, 54.5, 53.1, 44.7, 24.4, 46.3, 37.8, 43.6, 44.8, 35.5, 0, 0, 75, 50, 43.8, 63, 70.6, 52.5, 41.9, 43.5, 38.7, 36, 35, 44, 43.9, 45.2, 30.6, 30.9, 37.5, 51.1, 65.6, 41.5, 40, 49.5, 47.2, 38.7, 0, 0, 0, 16.7, 25, 22.2, 17.6, 7.5, 20.9, 13, 12.9, 8, 25, 8, 21.1, 19.4, 22.2, 14.5, 9.4, 4.3, 10, 12.2, 22.2, 6.9, 8, 25.8)), .Names = c("year", "uniq.loc", "uniq.n", "uniq.p"), class = "data.frame", row.names = c(NA, -78L))When I make an area-plot with:ggplot(data = uniq) + geom_area(aes(x = year, y = uniq.p, fill = uniq.loc), stat = "identity", position = "stack") + scale_x_continuous(limits=c(1986,2014)) + scale_y_continuous(limits=c(0,101)) + theme_bw()I get this result:However, I want to remove the space between the axis and the actual plot. When I add theme(panel.grid = element_blank(), panel.margin = unit(-0.8, "lines")) I get the following error message:Error in theme(panel.grid = element_blank(), panel.margin = unit(-0.8, : could not find function "unit"Any suggestions how to solve this problem? 解决方案 The problem is solved by adding expand=c(0,0) to scale_x_continuous and scale_y_continuous. This also removes the need for adding the panel.margin parameter.The code:ggplot(data = uniq) + geom_area(aes(x = year, y = uniq.p, fill = uniq.loc), stat = "identity", position = "stack") + scale_x_continuous(limits = c(1986,2014), expand = c(0, 0)) + scale_y_continuous(limits = c(0,101), expand = c(0, 0)) + theme_bw() + theme(panel.grid = element_blank(), panel.border = element_blank())The result: 这篇关于如何去除坐标轴和坐标轴之间的空间ggplot2中的区域图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云! 07-01 23:03