R和ggplot-删除y轴上的“0”刻度线

时间:2011-12-01 03:12:28

标签: r

当使用ggplot在R中绘图时,我注意到有时如果你没有在y轴上指定任何限制,默认情况下,绘图在y轴的底部不会有任何“0”标记(它假设底角代表0)。这个页面上的第一个图是一个很好的例子

http://wiki.stdout.org/rcookbook/Graphs/Axes%20%28ggplot2%29

您可以看到底角留空。这就是我想要的。

但如果我指定y轴的极限,则始终显示0。所以,如果我使用

scale_y_continuous(limits=c(0,8)

ylim(0,8)

我得到那个小0和哈希标记

所以,如果我有一个像:

这样的数据集
ByYear <- data.frame( V1 = c(2005,2006,2007,2008,2005,2006,2008,2006,2007,2005,2006,2007,2008),
+                       V2 = c(0,0.2,0,1.6,2,5,0,4,3,0,8,0,5), 
+                       V3 = c('A','A','A','A','B','B','B','C','C','D','D','D','D'))

运行像

这样的基本情节
ggplot(data=ByYear,aes(x=V1,y=V2,group=V3))+geom_line()+geom_point(aes(shape=V3),size=3)+opts(panel.grid.major=theme_blank(),panel.grid.minor=theme_blank())

有没有办法让第一个哈希标记为空白?类似于

的东西
ylim(,8)  #(Even though it does not work)

我知道我可以使用

expand=c(0,0)) or yaxis="i"

将0标记降低到下角(这是更好的),但唯一的问题是因为我有很多零数据,这将切断点形状的底部,所以我仍然需要一点点缓冲区空间低于零点。

1 个答案:

答案 0 :(得分:6)

我认为您可能正在寻找breaks的{​​{1}}参数:

scale_y_continuous

产生这个:

enter image description here

注意:由于版本0.9.2 ggplot(data=ByYear,aes(x=V1,y=V2,group=V3)) + geom_line() + geom_point(aes(shape=V3),size=3) + scale_y_continuous(breaks = 1:8) + opts(panel.grid.major=theme_blank(),panel.grid.minor=theme_blank()) 已由opts replaced完成:

theme