可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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.