为什么ggplot2没有绘制我的比例?

时间:2014-03-31 14:20:44

标签: r ggplot2 scale

这是一个非常愚蠢的问题:我以前曾多次使用过ggplot2,但这次它并没有在我的y轴上绘制比例,但它也没有给我任何错误消息...

这就是我所拥有的,以防有人能够弄清楚出了什么问题:

    graph.1 <- subset(school.year, year > 1930 & year < 1940)
ggplot(graph.1, aes(x=year, y=school.y)) + geom_line() +
  geom_point() + geom_text(aes(label=qtr), hjust=1.5) +
  xlab("Year of birth") +
  ylab("Years of completed education") +
  scale_y_continuous(breaks=seq(15.2, 17, 0.2)) +
  scale_x_continuous(breaks=seq(1930, 1940, 2)) +
  # To remove the gray background:
  theme_bw() +
  theme(axis.line = element_line(colour = "black"),
       panel.grid.major = element_blank(),
       panel.grid.minor = element_blank(),
       panel.border = element_blank(),
       panel.background = element_blank())

提前谢谢!

1 个答案:

答案 0 :(得分:2)

我认为问题在于您对数据框进行子集化。当您对year>1930进行分组时,scale_x不会获得1930.这是一个可重现的示例数据,用于解决运行代码时未按预期显示刻度线的问题。

set.seed(3487)
y <- seq(15, 17, by=.1)
x = sample(1930:1940, size=length(y), replace=T)
z = sample(1:4, size=length(y), replace=T)
school.year <- data.frame(year =x, school.y=y, qtr=z)

当你包括1930年的子集时,刻度标签很好用

graph.1 <- subset(school.year, year >= 1930 & year <= 1940)