2016-08-25 51 views
2

我最近开始使用ggplot2,我依赖于帮助手册来了解ggplot2如何工作。ggplot2点标签中的标签和中断

目标:自定义图形中的刻度线。

一)x轴

这里就是我所做的:

df <- data.frame(x = c(1, 3, 5) * 1000, y = 1) 
axs <- ggplot(df, aes(x, y)) + 
    geom_point() + 
    labs(x = NULL, y = NULL) 
axs 
axs + scale_x_continuous(breaks = c(1000,3000, 5000), labels = c("1k","3k","5k")) #works 

这个效果很好,但我想打印零。所以,这是我做的:

axs + scale_x_continuous(breaks = c(0,1000,3000, 5000), labels = c("0","1k","3k","5k")) 
#works but doesn't show zero. 

我不确定,所以我想打印偶数。

axs + scale_x_continuous(breaks = c(0,2000,4000, 6000), labels = c("0","2k","4k","6k")) 
#doesn't work at all. 

这显示2k和4k,但不是0和6k。我不知道为什么。

b)y轴 我做了类似的事情y轴没有任何成功。

windows() 
t1<-c(0,1,2,3) 
axs + scale_y_continuous(breaks = t1, labels = c("0","1","2","3")) #doesn't work. 

这只打印“1”,我根本没有看到其他要点。我不知道为什么。

我看了SO上的另一个线程:Trim first and last labels in ggplot2但是,这个线程似乎集中在打印日期格式上。

有人可以帮我吗?我是初学者,所以对于你们中的一些人来说,这个问题可能听起来太天真了。我很抱歉。

回答

1

您需要更改剧情的限制,所以尽量与y轴

axs + scale_y_continuous(limit = c(0,3), 
         breaks = t1, 
         labels = c("0","1","2","3")) 

axs + scale_x_continuous(limit = c(0,5000), 
         breaks = c(0,1000,3000, 5000), 
         labels = c("0","1k","3k","5k")) 

同样的事情