簡體   English   中英

自定義x軸刻度

[英]Customise x-axis ticks

就記錄而言,我有一個非常大的數據框(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.

我知道,我可以使用breaksminor_breaks通過scale_x_continuous修改刻度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"))

根據以下建議,現在唯一的問題是在50-60之間的間隔內X軸的值沒有清楚地出現。 O / P樣本 任何建議,以使其清楚!

使用參數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))

對於第二個問題-您在theme()設置axis.ticks.x=element_line(size=5) theme() -這會使您的軸刻度線變寬,因此它們顯示為小矩形。 如果要使軸刻度線更長,請使用axis.ticks.length=

+theme(axis.ticks.length=unit(0.5,"cm"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM