ggplot2, axis not showing after using theme(axis.line=element_line())

匿名 (未验证) 提交于 2019-12-03 03:08:02

问题:

I am trying to draw this following graph using ggplot2 package, but somehow the axis won't show up. the ticks are there, just not the axis line. I have used the theme(axis.line=element_line()) function, but it wouldn't work.

Here is my code:

library(ggplot2)  ggplot(data = soepl_randsub, aes(x = year, y =satisf_org, group = id)) +     geom_point() + geom_line() +ylab("Current Life Satisfaction") +theme_bw() +     theme(plot.background = element_blank(),         panel.grid.major = element_blank(),         panel.grid.minor = element_blank() ) +     theme(panel.border= element_blank()) +     theme(axis.line = element_line(color="black", size = "2"))  

I am not sure what went wrong. Here is the chart.

回答1:

The bug was fixed in ggplot2 v2.2.0 There is no longer a need to specify axis lines separately.

I think this is a bug in ggplot2 v2.1.0. (See this bug report and this one.) A workaround is to set the x-axis and y-axis lines separately.

  library(ggplot2)    ggplot(data = mpg, aes(x = hwy, y = displ)) +    geom_point() +    theme_bw() +    theme(plot.background = element_blank(),          panel.grid.major = element_blank(),          panel.grid.minor = element_blank() )+   theme(panel.border= element_blank())+   theme(axis.line.x = element_line(color="black", size = 2),         axis.line.y = element_line(color="black", size = 2)) 


回答2:

You don't need to specify axis-size for X and Y separately. When you are specifying size="2", R is considering value 2 as non-numeric argument. Hence, axis-line parameter is defaulted to 0 size. Use this line of code:

ggplot(data = mpg, aes(x = hwy, y = displ)) + geom_point() +xlab("Date")+ylab("Value of Home")+theme_bw() +theme(plot.background = element_blank(),panel.grid.major = element_blank(),panel.grid.minor = element_blank()) + theme(panel.border= element_blank()) + theme(axis.line = element_line(color="black", size = 2))

axis_line inherits from line in R, hence specifying size is mandatory for non-default values.



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