18

レコードに関して非常に大きなデータ フレーム (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.

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"))

以下の提案に基づいて、現在の唯一の問題は、50 ~ 60 の間の X 軸の値が明確に表示されないことです。 O/Pのサンプル それを明確にするための提案!!

4

1 に答える 1

23

引数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))

2 番目の問題 (axis.ticks.x=element_line(size=5)内部に設定theme()) については、軸の目盛りが広くなり、小さな長方形として表示されます。軸の目盛りを長くしたい場合は、 を使用しますaxis.ticks.length=

+theme(axis.ticks.length=unit(0.5,"cm"))
于 2013-07-20T16:22:10.237 に答える