我最近开始使用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但是,这个帖子似乎专注于打印日期格式。
有人可以帮帮我吗?我是初学者,所以对于你们这些人来说,这个问题可能听起来太天真了。对不起,我很抱歉。
答案 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"))