我有一个非常大的数据框(两列),记录数量很多。我已经用ggplot2绘制了图表。 X轴是时间,Y轴是值。在特定的时间间隔内,从时间50到60,我想将刻度增量变小,例如(50,51,51,53,...59,60)。对于其余的轴,每10个增量的刻度就可以了。因此,我希望X轴值如下:
10,20,30,40,50,51,52,53,54,55,56,57,58,58,60,70,80,90,..190,200.
我知道可以通过使用breaks
和minor_breaks
来修改scale_x_continuous
的刻度。但是,我没有得到预期的输出。以下是我的尝试:(注意:仅为示例创建了数据,因为我的数据非常大)。
data:
-----
x<-seq(1:200)
y<-seq(51,250,by=1)
df<-data.frame(x=x,y=y)
code:(Update based on @Didzis Elferts suggestion)
-----
ggplot(data=df, aes(x,y))+geom_line(size=1.6)+
scale_x_continuous( breaks=c(10,20,30,40,seq(50,60,by=2),seq(70,200,10))
,minor_breaks=seq(50,60,by=2) )+
+theme(axis.text.x=element_text(size=16),axis.text.y=element_text(size=16))+
+theme(axis.title.x=element_text(size=16),axis.title.y=element_text(size=16))+
+theme(axis.ticks.x = element_line(size = 1))+xlab("Time")+ylab("value")
+theme(axis.ticks.length=unit(0.8,"cm"))
根据下面的建议,现在唯一的问题是50-60区间内X轴的值没有清晰显示。有什么建议可以使其更加清晰明了!
minor_breaks=seq(50,60,by=2)
。 - Matt