ggplot2点标签中的标签和中断

时间:2016-08-25 03:21:55

标签: r ggplot2

我最近开始使用ggplot2,我依靠帮助手册来了解ggplot2的工作原理。

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

a)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 个答案:

答案 0 :(得分:1)

您需要更改绘图的限制,请尝试

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

与y轴相同

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