[英]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.
我知道,我可以使用breaks
和minor_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軸的值沒有清楚地出現。 任何建議,以使其清楚!
使用參數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.