就记录而言,我有一个非常大的数据框(2列).我在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.
Run Code Online (Sandbox Code Playgroud)
我知道,我可以通过scale_x_continuous
使用breaks
和修改刻度minor_breaks
.但是,我没有得到预期的输出.这是我的尝试:(注意:仅创建数据,例如我的数据非常大).
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"))
Run Code Online (Sandbox Code Playgroud)
基于下面的建议,现在唯一的问题是在50-60之间的间隔期间X轴的值没有明显出现.
任何建议,以明确!!
Did*_*rts 22
使用参数minor_breaks=
设置次要网格线.要在x轴下设置数字,所有数字都应该带有参数breaks=
.
ggplot(data=df, aes(x,y))+geom_line(size=1.6)+
scale_x_continuous(breaks=c(10,20,30,40,seq(50,60,by=1),seq(70,200,10)),
minor_breaks=seq(50,60,by=1))
Run Code Online (Sandbox Code Playgroud)
对于第二个问题 - 你设置axis.ticks.x=element_line(size=5)
内部theme()
- 使你的轴更宽,所以它们显示为小矩形.如果你想让轴刻度更长时间使用axis.ticks.length=
.
+theme(axis.ticks.length=unit(0.5,"cm"))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
51737 次 |
最近记录: |