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

Vin*_*woo 1 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)
Run Code Online (Sandbox Code Playgroud)

要么

ylim(0,8)
Run Code Online (Sandbox Code Playgroud)

我得到那个小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'))
Run Code Online (Sandbox Code Playgroud)

并运行一个基本的情节

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())
Run Code Online (Sandbox Code Playgroud)

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

ylim(,8)  #(Even though it does not work)
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用

expand=c(0,0)) or yaxis="i"
Run Code Online (Sandbox Code Playgroud)

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

jor*_*ran 6

我想你可能正在寻找以下breaks论点scale_y_continuous:

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())
Run Code Online (Sandbox Code Playgroud)

产生这个:

在此输入图像描述

注意:由于版本0.9.2 opts已被替换为theme:

+ theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())
Run Code Online (Sandbox Code Playgroud)